home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr14 / hackdic1.zip / JARGON1
Text File  |  1993-06-24  |  385KB  |  7,411 lines

  1. #========= THIS IS THE JARGON FILE, VERSION 2.9.12, 10 MAY 1993 =========#
  2.  
  3. This is the Jargon File, a comprehensive compendium of hacker slang
  4. illuminating many aspects of hackish tradition, folklore, and humor.
  5.  
  6. This document (the Jargon File) is in the public domain, to be freely
  7. used, shared, and modified.  There are (by intention) no legal
  8. restraints on what you can do with it, but there are traditions about
  9. its proper use to which many hackers are quite strongly attached.
  10. Please extend the courtesy of proper citation when you quote the File,
  11. ideally with a version number, as it will change and grow over time.
  12. (Examples of appropriate citation form: "Jargon File 2.9.12" or
  13. "The on-line hacker Jargon File, version 2.9.12, 10 MAY 1993".)
  14.  
  15. The Jargon File is a common heritage of the hacker culture.
  16. Over the years a number of individuals have volunteered considerable
  17. time to maintaining the File and been recognized by the net at large
  18. as editors of it.  Editorial responsibilities include: to collate
  19. contributions and suggestions from others; to seek out corroborating
  20. information; to cross-reference related entries; to keep the file in a
  21. consistent format; and to announce and distribute updated versions
  22. periodically.  Current volunteer editors include:
  23.  
  24.         Eric Raymond    esr@snark.thyrsus.com   (215)-296-5718
  25.  
  26. Although there is no requirement that you do so, it is considered good
  27. form to check with an editor before quoting the File in a published work
  28. or commercial product.  We may have additional information that would be
  29. helpful to you and can assist you in framing your quote to reflect
  30. not only the letter of the File but its spirit as well.
  31.  
  32. All contributions and suggestions about this file sent to a volunteer
  33. editor are gratefully received and will be regarded, unless otherwise
  34. labelled, as freely given donations for possible use as part of this
  35. public-domain file.
  36.  
  37. From time to time a snapshot of this file has been polished, edited,
  38. and formatted for commercial publication with the cooperation of the
  39. volunteer editors and the hacker community at large.  If you wish to
  40. have a bound paper copy of this file, you may find it convenient to
  41. purchase one of these.  They often contain additional material not
  42. found in on-line versions.  The two `authorized' editions so far are
  43. described in the Revision History section; there may be more in the
  44. future.
  45.  
  46. :Introduction:
  47. **************
  48.  
  49. :About This File:
  50. =================
  51.  
  52. This document is a collection of slang terms used by various subcultures
  53. of computer hackers.  Though some technical material is included for
  54. background and flavor, it is not a technical dictionary; what we
  55. describe here is the language hackers use among themselves for fun,
  56. social communication, and technical debate.
  57.  
  58. The `hacker culture' is actually a loosely networked collection of
  59. subcultures that is nevertheless conscious of some important shared
  60. experiences, shared roots, and shared values.  It has its own myths,
  61. heroes, villains, folk epics, in-jokes, taboos, and dreams.  Because
  62. hackers as a group are particularly creative people who define
  63. themselves partly by rejection of `normal' values and working habits, it
  64. has unusually rich and conscious traditions for an intentional culture
  65. less than 35 years old.
  66.  
  67. As usual with slang, the special vocabulary of hackers helps hold their
  68. culture together --- it helps hackers recognize each other's places in
  69. the community and expresses shared values and experiences.  Also as
  70. usual, *not* knowing the slang (or using it inappropriately) defines one
  71. as an outsider, a mundane, or (worst of all in hackish vocabulary)
  72. possibly even a {suit}.  All human cultures use slang in this threefold
  73. way --- as a tool of communication, and of inclusion, and of exclusion.
  74.  
  75. Among hackers, though, slang has a subtler aspect, paralleled perhaps in
  76. the slang of jazz musicians and some kinds of fine artists but hard to
  77. detect in most technical or scientific cultures; parts of it are code
  78. for shared states of *consciousness*.  There is a whole range of altered
  79. states and problem-solving mental stances basic to high-level hacking
  80. which don't fit into conventional linguistic reality any better than a
  81. Coltrane solo or one of Maurits Escher's `trompe l'oeil' compositions
  82. (Escher is a favorite of hackers), and hacker slang encodes these
  83. subtleties in many unobvious ways.  As a simple example, take the
  84. distinction between a {kluge} and an {elegant} solution, and the
  85. differing connotations attached to each.  The distinction is not only of
  86. engineering significance; it reaches right back into the nature of the
  87. generative processes in program design and asserts something important
  88. about two different kinds of relationship between the hacker and the
  89. hack.  Hacker slang is unusually rich in implications of this kind, of
  90. overtones and undertones that illuminate the hackish psyche.
  91.  
  92. But there is more.  Hackers, as a rule, love wordplay and are very
  93. conscious and inventive in their use of language.  These traits seem to
  94. be common in young children, but the conformity-enforcing machine we are
  95. pleased to call an educational system bludgeons them out of most of us
  96. before adolescence.  Thus, linguistic invention in most subcultures of
  97. the modern West is a halting and largely unconscious process.  Hackers,
  98. by contrast, regard slang formation and use as a game to be played for
  99. conscious pleasure.  Their inventions thus display an almost unique
  100. combination of the neotenous enjoyment of language-play with the
  101. discrimination of educated and powerful intelligence.  Further, the
  102. electronic media which knit them together are fluid, `hot' connections,
  103. well adapted to both the dissemination of new slang and the ruthless
  104. culling of weak and superannuated specimens.  The results of this
  105. process give us perhaps a uniquely intense and accelerated view of
  106. linguistic evolution in action.
  107.  
  108. Hackish slang also challenges some common linguistic and
  109. anthropological assumptions.  For example, it has recently become
  110. fashionable to speak of `low-context' versus `high-context'
  111. communication, and to classify cultures by the preferred context level
  112. of their languages and art forms.  It is usually claimed that
  113. low-context communication (characterized by precision, clarity, and
  114. completeness of self-contained utterances) is typical in cultures
  115. which value logic, objectivity, individualism, and competition; by
  116. contrast, high-context communication (elliptical, emotive,
  117. nuance-filled, multi-modal, heavily coded) is associated with cultures
  118. which value subjectivity, consensus, cooperation, and tradition.  What
  119. then are we to make of hackerdom, which is themed around extremely
  120. low-context interaction with computers and exhibits primarily
  121. "low-context" values, but cultivates an almost absurdly high-context
  122. slang style?
  123.  
  124. The intensity and consciousness of hackish invention make a compilation
  125. of hacker slang a particularly effective window into the surrounding
  126. culture --- and, in fact, this one is the latest version of an evolving
  127. compilation called the `Jargon File', maintained by hackers themselves
  128. for over 15 years.  This one (like its ancestors) is primarily a
  129. lexicon, but also includes `topic entries' which collect background or
  130. sidelight information on hacker culture that would be awkward to try to
  131. subsume under individual entries.
  132.  
  133. Though the format is that of a reference volume, it is intended that the
  134. material be enjoyable to browse.  Even a complete outsider should find
  135. at least a chuckle on nearly every page, and much that is amusingly
  136. thought-provoking.  But it is also true that hackers use humorous
  137. wordplay to make strong, sometimes combative statements about what they
  138. feel.  Some of these entries reflect the views of opposing sides in
  139. disputes that have been genuinely passionate; this is deliberate.  We
  140. have not tried to moderate or pretty up these disputes; rather we have
  141. attempted to ensure that *everyone's* sacred cows get gored,
  142. impartially.  Compromise is not particularly a hackish virtue, but the
  143. honest presentation of divergent viewpoints is.
  144.  
  145. The reader with minimal computer background who finds some references
  146. incomprehensibly technical can safely ignore them.  We have not felt it
  147. either necessary or desirable to eliminate all such; they, too,
  148. contribute flavor, and one of this document's major intended audiences
  149. --- fledgling hackers already partway inside the culture --- will
  150. benefit from them.
  151.  
  152. A selection of longer items of hacker folklore and humor is included in
  153. {appendix A}.  The `outside' reader's attention is particularly directed
  154. to {appendix B}, "A Portrait of J. Random Hacker".  {Appendix C} is a
  155. bibliography of non-technical works which have either influenced or
  156. described the hacker culture.
  157.  
  158. Because hackerdom is an intentional culture (one each individual must
  159. choose by action to join), one should not be surprised that the line
  160. between description and influence can become more than a little
  161. blurred.  Earlier versions of the Jargon File have played a central role
  162. in spreading hacker language and the culture that goes with it to
  163. successively larger populations, and we hope and expect that this one
  164. will do likewise.
  165.  
  166. :Of Slang, Jargon, and Techspeak:
  167. =================================
  168.  
  169. Linguists usually refer to informal language as `slang' and reserve the
  170. term `jargon' for the technical vocabularies of various occupations.
  171. However, the ancestor of this collection was called the `Jargon File',
  172. and hackish slang is traditionally `the jargon'.  When talking about the
  173. jargon there is therefore no convenient way to distinguish it from what
  174. a *linguist* would call hackers' jargon --- the formal vocabulary they
  175. learn from textbooks, technical papers, and manuals.
  176.  
  177. To make a confused situation worse, the line between hackish slang and
  178. the vocabulary of technical programming and computer science is fuzzy,
  179. and shifts over time.  Further, this vocabulary is shared with a wider
  180. technical culture of programmers, many of whom are not hackers and do
  181. not speak or recognize hackish slang.
  182.  
  183. Accordingly, this lexicon will try to be as precise as the facts of
  184. usage permit about the distinctions among three categories:
  185.  
  186.    * `slang': informal language from mainstream English or non-technical
  187.      subcultures (bikers, rock fans, surfers, etc).
  188.  
  189.    * `jargon': without qualifier, denotes informal `slangy' language
  190.      peculiar to or predominantly found among hackers --- the subject of
  191.      this lexicon.
  192.  
  193.    * `techspeak': the formal technical vocabulary of programming,
  194.      computer science, electronics, and other fields connected to
  195.      hacking.
  196.  
  197. This terminology will be consistently used throughout the remainder of
  198. this lexicon.
  199.  
  200. The jargon/techspeak distinction is the delicate one.  A lot of
  201. techspeak originated as jargon, and there is a steady continuing uptake
  202. of jargon into techspeak.  On the other hand, a lot of jargon arises
  203. from overgeneralization of techspeak terms (there is more about this in
  204. the "Jargon Construction" section below).
  205.  
  206. In general, we have considered techspeak any term that communicates
  207. primarily by a denotation well established in textbooks, technical
  208. dictionaries, or standards documents.
  209.  
  210. A few obviously techspeak terms (names of operating systems, languages,
  211. or documents) are listed when they are tied to hacker folklore that
  212. isn't covered in formal sources, or sometimes to convey critical
  213. historical background necessary to understand other entries to which
  214. they are cross-referenced.  Some other techspeak senses of jargon words
  215. are listed in order to make the jargon senses clear; where the text does
  216. not specify that a straight technical sense is under discussion, these
  217. are marked with `[techspeak]' as an etymology.  Some entries have a
  218. primary sense marked this way, with subsequent jargon meanings explained
  219. in terms of it.
  220.  
  221. We have also tried to indicate (where known) the apparent origins of
  222. terms.  The results are probably the least reliable information in the
  223. lexicon, for several reasons.  For one thing, it is well known that many
  224. hackish usages have been independently reinvented multiple times, even
  225. among the more obscure and intricate neologisms.  It often seems that
  226. the generative processes underlying hackish jargon formation have an
  227. internal logic so powerful as to create substantial parallelism across
  228. separate cultures and even in different languages!  For another, the
  229. networks tend to propagate innovations so quickly that `first use' is
  230. often impossible to pin down.  And, finally, compendia like this one
  231. alter what they observe by implicitly stamping cultural approval on
  232. terms and widening their use.
  233.  
  234. Despite these problems, the organized collection of jargon-related oral
  235. history for the File's 2.x.x versions has enabled us to put to rest
  236. quite a number of folk etymologies, place credit where credit is due,
  237. and illuminate the early history of many important hackerisms such as
  238. {kluge}, {cruft}, and {foo}.  We believe specialist lexicographers will
  239. find many of the historical notes more than casually instructive.
  240.  
  241. :Revision History:
  242. ==================
  243.  
  244. The original Jargon File was a collection of hacker jargon from
  245. technical cultures including the MIT AI Lab, the Stanford AI lab (SAIL),
  246. and others of the old ARPANET AI/LISP/PDP-10 communities including Bolt,
  247. Beranek and Newman (BBN), Carnegie-Mellon University (CMU), and
  248. Worcester Polytechnic Institute (WPI).
  249.  
  250. The Jargon File (hereafter referred to as `jargon-1' or `the File') was
  251. begun by Raphael Finkel at Stanford in 1975.  From this time until the
  252. plug was finally pulled on the SAIL computer in 1991, the File was named
  253. AIWORD.RF[UP,DOC] there.  Some terms in it date back considerably
  254. earlier ({frob} and some senses of {moby}, for instance, go back to the
  255. Tech Model Railroad Club at MIT and are believed to date at least back
  256. to the early 1960s).  The revisions of jargon-1 were all unnumbered and
  257. may be collectively considered `Version 1'.
  258.  
  259. In 1976, Mark Crispin, having seen an announcement about the File on the
  260. SAIL computer, {FTP}ed a copy of the File to MIT.  He noticed that it
  261. was hardly restricted to `AI words' and so stored the file on his
  262. directory as AI:MRC;SAIL JARGON.
  263.  
  264. The file was quickly renamed JARGON > (the `>' caused versioning under
  265. ITS) as a flurry of enhancements were made by Mark Crispin and Guy L.
  266. Steele Jr.  Unfortunately, amidst all this activity, nobody thought of
  267. correcting the term `jargon' to `slang' until the compendium had already
  268. become widely known as the Jargon File.
  269.  
  270. Raphael Finkel dropped out of active participation shortly thereafter
  271. and Don Woods became the SAIL contact for the File (which was
  272. subsequently kept in duplicate at SAIL and MIT, with periodic
  273. resynchronizations).
  274.  
  275. The File expanded by fits and starts until about 1983; Richard Stallman
  276. was prominent among the contributors, adding many MIT and ITS-related
  277. coinages.
  278.  
  279. In Spring 1981, a hacker named Charles Spurgeon got a large chunk of the
  280. File published in Stewart Brand's `CoEvolution Quarterly' (issue 29,
  281. pages 26--35) with illustrations by Phil Wadler and Guy Steele
  282. (including a couple of the Crunchly cartoons).  This appears to have
  283. been the File's first paper publication.
  284.  
  285. A late version of jargon-1, expanded with commentary for the mass
  286. market, was edited by Guy Steele into a book published in 1983 as `The
  287. Hacker's Dictionary' (Harper & Row CN 1082, ISBN 0-06-091082-8).  The
  288. other jargon-1 editors (Raphael Finkel, Don Woods, and Mark Crispin)
  289. contributed to this revision, as did Richard M. Stallman and Geoff
  290. Goodfellow.  This book (now out of print) is hereafter referred to as
  291. `Steele-1983' and those six as the Steele-1983 coauthors.
  292.  
  293. Shortly after the publication of Steele-1983, the File effectively
  294. stopped growing and changing.  Originally, this was due to a desire to
  295. freeze the file temporarily to facilitate the production of Steele-1983,
  296. but external conditions caused the `temporary' freeze to become
  297. permanent.
  298.  
  299. The AI Lab culture had been hit hard in the late 1970s by funding cuts
  300. and the resulting administrative decision to use vendor-supported
  301. hardware and software instead of homebrew whenever possible.  At MIT,
  302. most AI work had turned to dedicated LISP Machines.  At the same time,
  303. the commercialization of AI technology lured some of the AI Lab's best
  304. and brightest away to startups along the Route 128 strip in
  305. Massachusetts and out West in Silicon Valley.  The startups built LISP
  306. machines for MIT; the central MIT-AI computer became a {TWENEX} system
  307. rather than a host for the AI hackers' beloved {ITS}.
  308.  
  309. The Stanford AI Lab had effectively ceased to exist by 1980, although
  310. the SAIL computer continued as a Computer Science Department resource
  311. until 1991.  Stanford became a major {TWENEX} site, at one point
  312. operating more than a dozen TOPS-20 systems; but by the mid-1980s most
  313. of the interesting software work was being done on the emerging BSD UNIX
  314. standard.
  315.  
  316. In April 1983, the PDP-10-centered cultures that had nourished the File
  317. were dealt a death-blow by the cancellation of the Jupiter project at
  318. Digital Equipment Corporation.  The File's compilers, already dispersed,
  319. moved on to other things.  Steele-1983 was partly a monument to what its
  320. authors thought was a dying tradition; no one involved realized at the
  321. time just how wide its influence was to be.
  322.  
  323. By the mid-1980s the File's content was dated, but the legend that had
  324. grown up around it never quite died out.  The book, and softcopies
  325. obtained off the ARPANET, circulated even in cultures far removed from
  326. MIT and Stanford; the content exerted a strong and continuing influence
  327. on hackish language and humor.  Even as the advent of the microcomputer
  328. and other trends fueled a tremendous expansion of hackerdom, the File
  329. (and related materials such as the AI Koans in Appendix A) came to be
  330. seen as a sort of sacred epic, a hacker-culture Matter of Britain
  331. chronicling the heroic exploits of the Knights of the Lab.  The pace of
  332. change in hackerdom at large accelerated tremendously --- but the Jargon
  333. File, having passed from living document to icon, remained essentially
  334. untouched for seven years.
  335.  
  336. This revision contains nearly the entire text of a late version of
  337. jargon-1 (a few obsolete PDP-10-related entries were dropped after
  338. careful consultation with the editors of Steele-1983).  It merges in
  339. about 80% of the Steele-1983 text, omitting some framing material and a
  340. very few entries introduced in Steele-1983 that are now also obsolete.
  341.  
  342. This new version casts a wider net than the old Jargon File; its aim is
  343. to cover not just AI or PDP-10 hacker culture but all the technical
  344. computing cultures wherein the true hacker-nature is manifested.  More
  345. than half of the entries now derive from {USENET} and represent jargon
  346. now current in the C and UNIX communities, but special efforts have been
  347. made to collect jargon from other cultures including IBM PC programmers,
  348. Amiga fans, Mac enthusiasts, and even the IBM mainframe world.
  349.  
  350. Eric S. Raymond <esr@snark.thyrsus.com> maintains the new File with
  351. assistance from Guy L. Steele Jr. <gls@think.com>; these are the persons
  352. primarily reflected in the File's editorial `we', though we take
  353. pleasure in acknowledging the special contribution of the other
  354. coauthors of Steele-1983.  Please email all additions, corrections, and
  355. correspondence relating to the Jargon File to jargon@thyrsus.com
  356. (UUCP-only sites without connections to an autorouting smart site can
  357. use ...!uunet!snark!jargon).
  358.  
  359. (Warning: other email addresses appear in this file *but are not
  360. guaranteed to be correct* later than the revision date on the first
  361. line.  *Don't* email us if an attempt to reach your idol bounces --- we
  362. have no magic way of checking addresses or looking up people.)
  363.  
  364. The 2.9.6 version became the main text of `The New Hacker's Dictionary',
  365. by Eric Raymond (ed.), MIT Press 1991, ISBN 0-262-68069-6.  The
  366. maintainers are committed to updating the on-line version of the Jargon
  367. File through and beyond paper publication, and will continue to make it
  368. available to archives and public-access sites as a trust of the hacker
  369. community.
  370.  
  371. Here is a chronology of the high points in the recent on-line revisions:
  372.  
  373. Version 2.1.1, Jun 12 1990: the Jargon File comes alive again after a
  374. seven-year hiatus.  Reorganization and massive additions were by Eric
  375. S.  Raymond, approved by Guy Steele.  Many items of UNIX, C, USENET, and
  376. microcomputer-based jargon were added at that time (as well as The
  377. Untimely Demise of Mabel The Monkey).
  378.  
  379. Version 2.9.6, Aug 16 1991: corresponds to reproduction copy for book.
  380. This version had 18952 lines, 148629 words, 975551 characters, and 1702
  381. entries.
  382.  
  383. Version 2.9.8, Jan 01 1992: first public release since the book,
  384. including over fifty new entries and numerous corrections/additions to
  385. old ones.  Packaged with version 1.1 of vh(1) hypertext reader.  This
  386. version had 19509 lines, 153108 words, 1006023 characters, and 1760
  387. entries.
  388.  
  389. Version 2.9.9, Apr 01 1992: folded in XEROX PARC lexicon.  This version
  390. had 20298 lines, 159651 words, 1048909 characters, and 1821 entries.
  391.  
  392. Version 2.9.10, Jul 01 1992: lots of new historical material.  This
  393. version had 21349 lines, 168330 words, 1106991 characters, and 1891
  394. entries.
  395.  
  396. Version 2.9.11, Jan 01 1993: lots of new historical material.  This
  397. version had 21725 lines, 171169 words, 1125880 characters, and 1922
  398. entries.
  399.  
  400. Version 2.9.12, May 10 1993: a few new entries & changes, marginal
  401. MUD/IRC slang and some borderline techspeak removed, all in preparation
  402. for 2nd Edition of TNHD.  This version had 22238 lines, 175114 words,
  403. 1152467 characters, and 1946 entries.
  404.  
  405. Version numbering: Version numbers should be read as
  406. major.minor.revision.  Major version 1 is reserved for the `old' (ITS)
  407. Jargon File, jargon-1.  Major version 2 encompasses revisions by ESR
  408. (Eric S. Raymond) with assistance from GLS (Guy L.  Steele, Jr.) leading
  409. up to and including the second paper edition.  From now on, major
  410. version number N.00 will probably correspond to the Nth paper edition.
  411. Usually later versions will either completely supersede or incorporate
  412. earlier versions, so there is generally no point in keeping old versions
  413. around.
  414.  
  415. Our thanks to the coauthors of Steele-1983 for oversight and assistance,
  416. and to the hundreds of USENETters (too many to name here) who
  417. contributed entries and encouragement.  More thanks go to several of the
  418. old-timers on the USENET group alt.folklore.computers, who contributed
  419. much useful commentary and many corrections and valuable historical
  420. perspective: Joseph M. Newcomer <jn11+@andrew.cmu.edu>, Bernie Cosell
  421. <cosell@bbn.com>, Earl Boebert <boebert@SCTC.com>, and Joe Morris
  422. <jcmorris@mwunix.mitre.org>.
  423.  
  424. We were fortunate enough to have the aid of some accomplished
  425. linguists.  David Stampe <stampe@uhunix.uhcc.hawaii.edu> and Charles
  426. Hoequist <hoequist@bnr.ca> contributed valuable criticism; Joe Keane
  427. <jgk@osc.osc.com> helped us improve the pronunciation guides.
  428.  
  429. A few bits of this text quote previous works.  We are indebted to Brian
  430. A. LaMacchia <bal@zurich.ai.mit.edu> for obtaining permission for us to
  431. use material from the `TMRC Dictionary'; also, Don Libes
  432. <libes@cme.nist.gov> contributed some appropriate material from his
  433. excellent book `Life With UNIX'.  We thank Per Lindberg <per@front.se>,
  434. author of the remarkable Swedish-language 'zine `Hackerbladet', for
  435. bringing `FOO!' comics to our attention and smuggling one of the IBM
  436. hacker underground's own baby jargon files out to us.  Thanks also to
  437. Maarten Litmaath for generously allowing the inclusion of the ASCII
  438. pronunciation guide he formerly maintained.  And our gratitude to Marc
  439. Weiser of XEROX PARC <Marc_Weiser.PARC@xerox.com> for securing us
  440. permission to quote from PARC's own jargon lexicon and shipping us a
  441. copy.
  442.  
  443. It is a particular pleasure to acknowledge the major contributions of
  444. Mark Brader <msb@sq.com> to the final manuscript; he read and reread
  445. many drafts, checked facts, caught typos, submitted an amazing number of
  446. thoughtful comments, and did yeoman service in catching typos and minor
  447. usage bobbles.  Mr. Brader's rare combination of enthusiasm,
  448. persistence, wide-ranging technical knowledge, and precisionism in
  449. matters of language made his help invaluable, and the sustained volume
  450. and quality of his input over many months only allowed him to escape
  451. co-editor credit by the slimmest of margins.
  452.  
  453. Finally, George V. Reilly <gvr@cs.brown.edu> helped with TeX arcana and
  454. painstakingly proofread some 2.7 and 2.8 versions; Steve Summit
  455. <scs@adam.mit.edu> contributed a number of excellent new entries and
  456. many small improvements to 2.9.10; and Eric Tiedemann <est@thyrsus.com>
  457. contributed sage advice throughout on rhetoric, amphigory, and
  458. philosophunculism.
  459.  
  460. :How Jargon Works:
  461. ******************
  462.  
  463. :Jargon Construction:
  464. =====================
  465.  
  466. There are some standard methods of jargonification that became
  467. established quite early (i.e., before 1970), spreading from such sources
  468. as the Tech Model Railroad Club, the PDP-1 SPACEWAR hackers, and John
  469. McCarthy's original crew of LISPers.  These include the following:
  470.  
  471.  
  472. :Verb Doubling: --------------- A standard construction in English is to
  473. double a verb and use it as an exclamation, such as "Bang, bang!" or
  474. "Quack, quack!".  Most of these are names for noises.  Hackers also
  475. double verbs as a concise, sometimes sarcastic comment on what the
  476. implied subject does.  Also, a doubled verb is often used to terminate a
  477. conversation, in the process remarking on the current state of affairs
  478. or what the speaker intends to do next.  Typical examples involve {win},
  479. {lose}, {hack}, {flame}, {barf}, {chomp}:
  480.  
  481.      "The disk heads just crashed."  "Lose, lose."
  482.      "Mostly he talked about his latest crock.  Flame, flame."
  483.      "Boy, what a bagbiter!  Chomp, chomp!"
  484.  
  485. Some verb-doubled constructions have special meanings not immediately
  486. obvious from the verb.  These have their own listings in the lexicon.
  487.  
  488. The {USENET} culture has one *tripling* convention unrelated to
  489. this; the names of `joke' topic groups often have a tripled last
  490. element.  The first and paradigmatic example was
  491. alt.swedish.chef.bork.bork.bork (a "Muppet Show" reference);
  492. other infamous examples have included:
  493.  
  494.      alt.french.captain.borg.borg.borg
  495.      alt.wesley.crusher.die.die.die
  496.      comp.unix.internals.system.calls.brk.brk.brk
  497.      sci.physics.edward.teller.boom.boom.boom
  498.      alt.sadistic.dentists.drill.drill.drill
  499.  
  500.  
  501. :Soundalike slang: ------------------ Hackers will often make rhymes or
  502. puns in order to convert an ordinary word or phrase into something more
  503. interesting.  It is considered particularly {flavorful} if the phrase is
  504. bent so as to include some other jargon word; thus the computer hobbyist
  505. magazine `Dr. Dobb's Journal' is almost always referred to among hackers
  506. as `Dr. Frob's Journal' or simply `Dr. Frob's'.  Terms of this kind that
  507. have been in fairly wide use include names for newspapers:
  508.  
  509.      Boston Herald => Horrid (or Harried)
  510.      Boston Globe => Boston Glob
  511.      Houston (or San Francisco) Chronicle
  512.             => the Crocknicle (or the Comical)
  513.      New York Times => New York Slime
  514.  
  515. However, terms like these are often made up on the spur of the moment.
  516. Standard examples include:
  517.  
  518.      Data General => Dirty Genitals
  519.      IBM 360 => IBM Three-Sickly
  520.      Government Property --- Do Not Duplicate (on keys)
  521.             => Government Duplicity --- Do Not Propagate
  522.      for historical reasons => for hysterical raisins
  523.      Margaret Jacks Hall (the CS building at Stanford)
  524.             => Marginal Hacks Hall
  525.  
  526. This is not really similar to the Cockney rhyming slang it has been
  527. compared to in the past, because Cockney substitutions are opaque
  528. whereas hacker punning jargon is intentionally transparent.
  529.  
  530.  
  531. :The `-P' convention: --------------------- Turning a word into a
  532. question by appending the syllable `P'; from the LISP convention of
  533. appending the letter `P' to denote a predicate (a boolean-valued
  534. function).  The question should expect a yes/no answer, though it
  535. needn't.  (See {T} and {NIL}.)
  536.  
  537.      At dinnertime:
  538.            Q: "Foodp?"
  539.            A: "Yeah, I'm pretty hungry." or "T!"
  540.  
  541.      At any time:
  542.            Q: "State-of-the-world-P?"
  543.            A: (Straight) "I'm about to go home."
  544.            A: (Humorous) "Yes, the world has a state."
  545.  
  546.      On the phone to Florida:
  547.            Q: "State-p Florida?"
  548.            A: "Been reading JARGON.TXT again, eh?"
  549.  
  550. [One of the best of these is a {Gosperism}.  Once, when we were at a
  551. Chinese restaurant, Bill Gosper wanted to know whether someone would
  552. like to share with him a two-person-sized bowl of soup.  His inquiry
  553. was: "Split-p soup?" --- GLS]
  554.  
  555.  
  556. :Overgeneralization: -------------------- A very conspicuous feature of
  557. jargon is the frequency with which techspeak items such as names of
  558. program tools, command language primitives, and even assembler opcodes
  559. are applied to contexts outside of computing wherever hackers find
  560. amusing analogies to them.  Thus (to cite one of the best-known
  561. examples) UNIX hackers often {grep} for things rather than searching for
  562. them.  Many of the lexicon entries are generalizations of exactly this
  563. kind.
  564.  
  565. Hackers enjoy overgeneralization on the grammatical level as well.  Many
  566. hackers love to take various words and add the wrong endings to them to
  567. make nouns and verbs, often by extending a standard rule to nonuniform
  568. cases (or vice versa).  For example, because
  569.  
  570.      porous => porosity
  571.      generous => generosity
  572.  
  573. hackers happily generalize:
  574.  
  575.      mysterious => mysteriosity
  576.      ferrous => ferrosity
  577.      obvious => obviosity
  578.      dubious => dubiosity
  579.  
  580. Another class of common construction uses the suffix `-itude' to
  581. abstract a quality from just about any adjective or noun.  This
  582. is used especially in cases where mainstream English would perform the
  583. same abstraction through `-iness' or `-ingness'.  Thus:
  584.  
  585. win =>winnitude (a common exclamation)loss =>lossitudecruft =>cruftitudelame =>lameitude
  586. Some hackers cheerfully reverse this; they argue, for example, that
  587. the horizontal degree lines on a globe ought to be called `lats' ---
  588. after all, they're measuring latitude!
  589.  
  590. Also, note that all nouns can be verbed.  E.g.: "All nouns can be
  591. verbed", "I'll mouse it up", "Hang on while I clipboard it over", "I'm
  592. grepping the files".  English as a whole is already heading in this
  593. direction (towards pure-positional grammar like Chinese); hackers are
  594. simply a bit ahead of the curve.
  595.  
  596. However, hackers avoid the unimaginative verb-making techniques
  597. characteristic of marketroids, bean-counters, and the Pentagon; a hacker
  598. would never, for example, `productize', `prioritize', or `securitize'
  599. things.  Hackers have a strong aversion to bureaucratic bafflegab and
  600. regard those who use it with contempt.
  601.  
  602. Similarly, all verbs can be nouned.  This is only a slight
  603. overgeneralization in modern English; in hackish, however, it is good
  604. form to mark them in some standard nonstandard way.  Thus:
  605.  
  606.      win => winnitude, winnage
  607.      disgust => disgustitude
  608.      hack => hackification
  609.  
  610. Further, note the prevalence of certain kinds of nonstandard plural
  611. forms.  Some of these go back quite a ways; the TMRC Dictionary includes
  612. an entry which implies that the plural of `mouse' is {meeces}, and notes
  613. that the defined plural of `caboose' is `cabeese'.  This latter has
  614. apparently been standard (or at least a standard joke) among railfans
  615. (railroad enthusiasts) for many years.
  616.  
  617. On a similarly Anglo-Saxon note, almost anything ending in `x' may form
  618. plurals in `-xen' (see {VAXen} and {boxen} in the main text).  Even
  619. words ending in phonetic /k/ alone are sometimes treated this way; e.g.,
  620. `soxen' for a bunch of socks.  Other funny plurals are `frobbotzim' for
  621. the plural of `frobbozz' (see {frobnitz}) and `Unices' and `Twenices'
  622. (rather than `Unixes' and `Twenexes'; see {UNIX}, {TWENEX} in main
  623. text).  But note that `Unixen' and `Twenexen' are never used; it has
  624. been suggested that this is because `-ix' and `-ex' are Latin singular
  625. endings that attract a Latinate plural.  Finally, it has been suggested
  626. to general approval that the plural of `mongoose' ought to be
  627. `polygoose'.
  628.  
  629. The pattern here, as with other hackish grammatical quirks, is
  630. generalization of an inflectional rule that in English is either an
  631. import or a fossil (such as the Hebrew plural ending `-im', or the
  632. Anglo-Saxon plural suffix `-en') to cases where it isn't normally
  633. considered to apply.
  634.  
  635. This is not `poor grammar', as hackers are generally quite well aware of
  636. what they are doing when they distort the language.  It is grammatical
  637. creativity, a form of playfulness.  It is done not to impress but to
  638. amuse, and never at the expense of clarity.
  639.  
  640.  
  641. :Spoken inarticulations: ------------------------ Words such as
  642. `mumble', `sigh', and `groan' are spoken in places where their referent
  643. might more naturally be used.  It has been suggested that this usage
  644. derives from the impossibility of representing such noises on a comm
  645. link or in electronic mail (interestingly, the same sorts of
  646. constructions have been showing up with increasing frequency in comic
  647. strips).  Another expression sometimes heard is "Complain!", meaning "I
  648. have a complaint!"
  649.  
  650.  
  651. :Anthromorphization: -------------------- Semantically, one rich source
  652. of jargon constructions is the hackish tendency to anthropomorphize
  653. hardware and software.  This isn't done in a naive way; hackers don't
  654. personalize their stuff in the sense of feeling empathy with it, nor do
  655. they mystically believe that the things they work on every day are
  656. `alive'.  What *is* common is to hear hardware or software talked about
  657. as though it has homunculi talking to each other inside it, with
  658. intentions and desires.  Thus, one hears "The protocol handler got
  659. confused", or that programs "are trying" to do things, or one may say of
  660. a routine that "its goal in life is to X".  One even hears explanations
  661. like "...  and its poor little brain couldn't understand X, and it
  662. died."  Sometimes modelling things this way actually seems to make them
  663. easier to understand, perhaps because it's instinctively natural to
  664. think of anything with a really complex behavioral repertoire as `like a
  665. person' rather than `like a thing'.
  666.  
  667.  
  668.  
  669. Of the six listed constructions, verb doubling, peculiar noun
  670. formations, anthromorphization, and (especially) spoken inarticulations
  671. have become quite general; but punning jargon is still largely confined
  672. to MIT and other large universities, and the `-P' convention is found
  673. only where LISPers flourish.
  674.  
  675. Finally, note that many words in hacker jargon have to be understood as
  676. members of sets of comparatives.  This is especially true of the
  677. adjectives and nouns used to describe the beauty and functional quality
  678. of code.  Here is an approximately correct spectrum:
  679.  
  680.      monstrosity  brain-damage  screw  bug  lose  misfeature
  681.      crock  kluge  hack  win  feature  elegance  perfection
  682.  
  683. The last is spoken of as a mythical absolute, approximated but never
  684. actually attained.  Another similar scale is used for describing the
  685. reliability of software:
  686.  
  687.      broken  flaky  dodgy  fragile  brittle
  688.      solid  robust  bulletproof  armor-plated
  689.  
  690. Note, however, that `dodgy' is primarily Commonwealth hackish (it is
  691. rare in the U.S.) and may change places with `flaky' for some speakers.
  692.  
  693. Coinages for describing {lossage} seem to call forth the very finest in
  694. hackish linguistic inventiveness; it has been truly said that hackers
  695. have even more words for equipment failures than Yiddish has for
  696. obnoxious people.
  697.  
  698. :Hacker Writing Style:
  699. ======================
  700.  
  701. We've already seen that hackers often coin jargon by overgeneralizing
  702. grammatical rules.  This is one aspect of a more general fondness for
  703. form-versus-content language jokes that shows up particularly in hackish
  704. writing.  One correspondent reports that he consistently misspells
  705. `wrong' as `worng'.  Others have been known to criticize glitches in
  706. Jargon File drafts by observing (in the mode of Douglas Hofstadter)
  707. "This sentence no verb", or "Too repetetetive", or "Bad speling", or
  708. "Incorrectspa cing."  Similarly, intentional spoonerisms are often made
  709. of phrases relating to confusion or things that are confusing; `dain
  710. bramage' for `brain damage' is perhaps the most common (similarly, a
  711. hacker would be likely to write "Excuse me, I'm cixelsyd today", rather
  712. than "I'm dyslexic today").  This sort of thing is quite common and is
  713. enjoyed by all concerned.
  714.  
  715. Hackers tend to use quotes as balanced delimiters like parentheses, much
  716. to the dismay of American editors.  Thus, if "Jim is going" is a phrase,
  717. and so are "Bill runs" and "Spock groks", then hackers generally prefer
  718. to write: "Jim is going", "Bill runs", and "Spock groks".  This is
  719. incorrect according to standard American usage (which would put the
  720. continuation commas and the final period inside the string quotes);
  721. however, it is counter-intuitive to hackers to mutilate literal strings
  722. with characters that don't belong in them.  Given the sorts of examples
  723. that can come up in discussions of programming, American-style quoting
  724. can even be grossly misleading.  When communicating command lines or
  725. small pieces of code, extra characters can be a real pain in the neck.
  726.  
  727. Consider, for example, a sentence in a {vi} tutorial that looks like this:
  728.  
  729.      Then delete a line from the file by typing "dd".
  730.  
  731. Standard usage would make this
  732.  
  733.      Then delete a line from the file by typing "dd."
  734.  
  735. but that would be very bad --- because the reader would be prone to type
  736. the string d-d-dot, and it happens that in `vi(1)' dot repeats the last
  737. command accepted.  The net result would be to delete *two* lines!
  738.  
  739. The Jargon File follows hackish usage throughout.
  740.  
  741. Interestingly, a similar style is now preferred practice in Great
  742. Britain, though the older style (which became established for
  743. typographical reasons having to do with the aesthetics of comma and
  744. quotes in typeset text) is still accepted there.  `Hart's Rules' and the
  745. `Oxford Dictionary for Writers and Editors' call the hacker-like style
  746. `new' or `logical' quoting.
  747.  
  748. Another hacker quirk is a tendency to distinguish between `scare' quotes
  749. and `speech' quotes; that is, to use British-style single quotes for
  750. marking and reserve American-style double quotes for actual reports of
  751. speech or text included from elsewhere.  Interestingly, some authorities
  752. describe this as correct general usage, but mainstream American English
  753. has gone to using double-quotes indiscriminately enough that hacker
  754. usage appears marked [and, in fact, I thought this was a personal quirk
  755. of mine until I checked with USENET --- ESR].  One further permutation
  756. that is definitely *not* standard is a hackish tendency to do marking
  757. quotes by using apostrophes (single quotes) in pairs; that is, 'like
  758. this'.  This is modelled on string and character literal syntax in some
  759. programming languages (reinforced by the fact that many character-only
  760. terminals display the apostrophe in typewriter style, as a vertical
  761. single quote).
  762.  
  763. One quirk that shows up frequently in the {email} style of UNIX hackers
  764. in particular is a tendency for some things that are normally
  765. all-lowercase (including usernames and the names of commands and C
  766. routines) to remain uncapitalized even when they occur at the beginning
  767. of sentences.  It is clear that, for many hackers, the case of such
  768. identifiers becomes a part of their internal representation (the
  769. `spelling') and cannot be overridden without mental effort (an
  770. appropriate reflex because UNIX and C both distinguish cases and
  771. confusing them can lead to {lossage}).  A way of escaping this dilemma
  772. is simply to avoid using these constructions at the beginning of
  773. sentences.
  774.  
  775. There seems to be a meta-rule behind these nonstandard hackerisms to the
  776. effect that precision of expression is more important than conformance
  777. to traditional rules; where the latter create ambiguity or lose
  778. information they can be discarded without a second thought.  It is
  779. notable in this respect that other hackish inventions (for example, in
  780. vocabulary) also tend to carry very precise shades of meaning even when
  781. constructed to appear slangy and loose.  In fact, to a hacker, the
  782. contrast between `loose' form and `tight' content in jargon is a
  783. substantial part of its humor!
  784.  
  785. Hackers have also developed a number of punctuation and emphasis
  786. conventions adapted to single-font all-ASCII communications links, and
  787. these are occasionally carried over into written documents even when
  788. normal means of font changes, underlining, and the like are available.
  789.  
  790. One of these is that TEXT IN ALL CAPS IS INTERPRETED AS `LOUD', and this
  791. becomes such an ingrained synesthetic reflex that a person who goes to
  792. caps-lock while in {talk mode} may be asked to "stop shouting, please,
  793. you're hurting my ears!".
  794.  
  795. Also, it is common to use bracketing with unusual characters to signify
  796. emphasis.  The asterisk is most common, as in "What the *hell*?" even
  797. though this interferes with the common use of the asterisk suffix as a
  798. footnote mark.  The underscore is also common, suggesting underlining
  799. (this is particularly common with book titles; for example, "It is often
  800. alleged that Joe Haldeman wrote _The_Forever_War_ as a rebuttal to
  801. Robert Heinlein's earlier novel of the future military,
  802. _Starship_Troopers_.").  Other forms exemplified by "=hell=", "\hell/",
  803. or "/hell/" are occasionally seen (it's claimed that in the last example
  804. the first slash pushes the letters over to the right to make them
  805. italic, and the second keeps them from falling over).  Finally, words
  806. may also be emphasized L I K E T H I S, or by a series of carets (^)
  807. under them on the next line of the text.
  808.  
  809. There is a semantic difference between *emphasis like this* (which
  810. emphasizes the phrase as a whole), and *emphasis* *like* *this* (which
  811. suggests the writer speaking very slowly and distinctly, as if to a
  812. very young child or a mentally impaired person).  Bracketing a word with
  813. the `*' character may also indicate that the writer wishes readers to
  814. consider that an action is taking place or that a sound is being made.
  815. Examples: *bang*, *hic*, *ring*, *grin*, *kick*, *stomp*, *mumble*.
  816.  
  817. Another habit is that of using angle-bracket enclosure to genericize a
  818. term; this derives from conventions used in {BNF}.  Uses like the
  819. following are common:
  820.  
  821.      So this <ethnic> walks into a bar one day, and...
  822.  
  823. There is also an accepted convention for `writing under erasure'; the
  824. text
  825.  
  826.      Be nice to this fool^H^H^H^Hgentleman, he's in from corporate HQ.
  827.  
  828. would be read as "Be nice to this fool, I mean this gentleman...".  This
  829. comes from the fact that the digraph ^H is often used as a print
  830. representation for a backspace.  It parallels (and may have been
  831. influenced by) the ironic use of `slashouts' in science-fiction
  832. fanzines.
  833.  
  834. In a formula, `*' signifies multiplication but two asterisks in a row
  835. are a shorthand for exponentiation (this derives from FORTRAN).  Thus,
  836. one might write 2 ** 8 = 256.
  837.  
  838. Another notation for exponentiation one sees more frequently uses the
  839. caret (^, ASCII 1011110); one might write instead `2^8 = 256'.  This
  840. goes all the way back to Algol-60, which used the archaic ASCII
  841. `up-arrow' that later became the caret; this was picked up by Kemeny and
  842. Kurtz's original BASIC, which in turn influenced the design of the
  843. `bc(1)' and `dc(1)' UNIX tools, which have probably done most to
  844. reinforce the convention on USENET.  The notation is mildly confusing to
  845. C programmers, because `^' means bitwise {XOR} in C.  Despite this, it
  846. was favored 3:1 over ** in a late-1990 snapshot of USENET.  It is used
  847. consistently in this text.
  848.  
  849. In on-line exchanges, hackers tend to use decimal forms or improper
  850. fractions (`3.5' or `7/2') rather than `typewriter style' mixed
  851. fractions (`3-1/2').  The major motive here is probably that the former
  852. are more readable in a monospaced font, together with a desire to avoid
  853. the risk that the latter might be read as `three minus one-half'.  The
  854. decimal form is definitely preferred for fractions with a terminating
  855. decimal representation; there may be some cultural influence here from
  856. the high status of scientific notation.
  857.  
  858. Another on-line convention, used especially for very large or very small
  859. numbers, is taken from C (which derived it from FORTRAN).  This is a
  860. form of `scientific notation' using `e' to replace `*10^'; for example,
  861. one year is about 3e7 seconds long.
  862.  
  863. The tilde (~) is commonly used in a quantifying sense of
  864. `approximately'; that is, `~50' means `about fifty'.
  865.  
  866. On USENET and in the {MUD} world, common C boolean, logical, and
  867. relational operators such as `|', `&', `||', `&&', `!', `==', `!=', `>',
  868. `<', `>=', and `=<' are often combined with English.  The Pascal
  869. not-equals, `<>', is also recognized, and occasionally one sees `/=' for
  870. not-equals (from Ada, Common Lisp, and Fortran 90).  The use of prefix
  871. `!' as a loose synonym for `not-' or `no-' is particularly common; thus,
  872. `!clue' is read `no-clue' or `clueless'.
  873.  
  874. A related practice borrows syntax from preferred programming languages
  875. to express ideas in a natural-language text.  For example, one might
  876. see the following:
  877.  
  878.      In <jrh578689@thudpucker.com> J. R. Hacker wrote:
  879.      >I resently had occasion to field-test the Snafu
  880.      >Systems 2300E adaptive gonkulator.  The price was
  881.      >right, and the racing stripe on the case looked
  882.      >kind of neat, but its performance left something
  883.      >to be desired.
  884.  
  885.      Yeah, I tried one out too.
  886.  
  887.      #ifdef FLAME
  888.      Hasn't anyone told those idiots that you can't get
  889.      decent bogon suppression with AFJ filters at today's
  890.      net volumes?
  891.      #endif /* FLAME */
  892.  
  893.      I guess they figured the price premium for true
  894.      frame-based semantic analysis was too high.
  895.      Unfortunately, it's also the only workable approach.
  896.      I wouldn't recommend purchase of this product unless
  897.      you're on a *very* tight budget.
  898.  
  899.      #include <disclaimer.h>
  900.      --
  901.                       == Frank Foonly (Fubarco Systems)
  902.  
  903. In the above, the `#ifdef'/`#endif' pair is a conditional compilation
  904. syntax from C; here, it implies that the text between (which is a
  905. {flame}) should be evaluated only if you have turned on (or defined on)
  906. the switch FLAME.  The `#include' at the end is C for "include standard
  907. disclaimer here"; the `standard disclaimer' is understood to read,
  908. roughly, "These are my personal opinions and not to be construed as the
  909. official position of my employer."
  910.  
  911. The top section in the example, with > at the left margin, is an example
  912. of an inclusion convention we'll discuss below.
  913.  
  914. Hackers also mix letters and numbers more freely than in mainstream
  915. usage.  In particular, it is good hackish style to write a digit
  916. sequence where you intend the reader to understand the text string that
  917. names that number in English.  So, hackers prefer to write `1970s'
  918. rather than `nineteen-seventies' or `1970's' (the latter looks like a
  919. possessive).
  920.  
  921. It should also be noted that hackers exhibit much less reluctance to use
  922. multiply nested parentheses than is normal in English.  Part of this is
  923. almost certainly due to influence from LISP (which uses deeply nested
  924. parentheses (like this (see?)) in its syntax a lot), but it has also
  925. been suggested that a more basic hacker trait of enjoying playing with
  926. complexity and pushing systems to their limits is in operation.
  927.  
  928. Finally, it is worth mentioning that many studies of on-line
  929. communication have shown that electronic links have a de-inhibiting
  930. effect on people.  Deprived of the body-language cues through which
  931. emotional state is expressed, people tend to forget everything about
  932. other parties except what is presented over that ASCII link.  This has
  933. both good and bad effects.  A good one is that it encourages honesty and
  934. tends to break down hierarchical authority relationships; a bad one is
  935. that it may encourage depersonalization and gratuitous rudeness.
  936. Perhaps in response to this, experienced netters often display a sort of
  937. conscious formal politesse in their writing that has passed out of
  938. fashion in other spoken and written media (for example, the phrase "Well
  939. said, sir!" is not uncommon).
  940.  
  941. Many introverted hackers who are next to inarticulate in person
  942. communicate with considerable fluency over the net, perhaps precisely
  943. because they can forget on an unconscious level that they are dealing
  944. with people and thus don't feel stressed and anxious as they would face
  945. to face.
  946.  
  947. Though it is considered gauche to publicly criticize posters for poor
  948. spelling or grammar, the network places a premium on literacy and
  949. clarity of expression.  It may well be that future historians of
  950. literature will see in it a revival of the great tradition of personal
  951. letters as art.
  952.  
  953. :Email Quotes and Inclusion Conventions:
  954. ========================================
  955.  
  956. One area where hackish conventions for on-line writing are still in some
  957. flux is the marking of included material from earlier messages --- what
  958. would be called `block quotations' in ordinary English.  From the usual
  959. typographic convention employed for these (smaller font at an extra
  960. indent), there derived the notation of included text being indented by
  961. one ASCII TAB (0001001) character, which under UNIX and many other
  962. environments gives the appearance of an 8-space indent.
  963.  
  964. Early mail and netnews readers had no facility for including messages
  965. this way, so people had to paste in copy manually.  BSD `Mail(1)' was
  966. the first message agent to support inclusion, and early USENETters
  967. emulated its style.  But the TAB character tended to push included text
  968. too far to the right (especially in multiply nested inclusions), leading
  969. to ugly wraparounds.  After a brief period of confusion (during which an
  970. inclusion leader consisting of three or four spaces became established
  971. in EMACS and a few mailers), the use of leading `>' or `> ' became
  972. standard, perhaps owing to its use in `ed(1)' to display tabs
  973. (alternatively, it may derive from the `>' that some early UNIX mailers
  974. used to quote lines starting with "From" in text, so they wouldn't look
  975. like the beginnings of new message headers).  Inclusions within
  976. inclusions keep their `>' leaders, so the `nesting level' of a quotation
  977. is visually apparent.
  978.  
  979. The practice of including text from the parent article when posting a
  980. followup helped solve what had been a major nuisance on USENET: the fact
  981. that articles do not arrive at different sites in the same order.
  982. Careless posters used to post articles that would begin with, or even
  983. consist entirely of, "No, that's wrong" or "I agree" or the like.  It
  984. was hard to see who was responding to what.  Consequently, around 1984,
  985. new news-posting software evolved a facility to automatically include
  986. the text of a previous article, marked with "> " or whatever the poster
  987. chose.  The poster was expected to delete all but the relevant lines.
  988. The result has been that, now, careless posters post articles containing
  989. the *entire* text of a preceding article, *followed* only by "No, that's
  990. wrong" or "I agree".
  991.  
  992. Many people feel that this cure is worse than the original disease, and
  993. there soon appeared newsreader software designed to let the reader skip
  994. over included text if desired.  Today, some posting software rejects
  995. articles containing too high a proportion of lines beginning with `>'
  996. --- but this too has led to undesirable workarounds, such as the
  997. deliberate inclusion of zero-content filler lines which aren't quoted
  998. and thus pull the message below the rejection threshold.
  999.  
  1000. Because the default mailers supplied with UNIX and other operating
  1001. systems haven't evolved as quickly as human usage, the older conventions
  1002. using a leading TAB or three or four spaces are still alive; however,
  1003. >-inclusion is now clearly the prevalent form in both netnews and mail.
  1004.  
  1005. In 1991 practice is still evolving, and disputes over the `correct'
  1006. inclusion style occasionally lead to {holy wars}.  One variant style
  1007. reported uses the citation character `|' in place of `>' for extended
  1008. quotations where original variations in indentation are being retained.
  1009. One also sees different styles of quoting a number of authors in the
  1010. same message: one (deprecated because it loses information) uses a
  1011. leader of `> ' for everyone, another (the most common) is `> > > > ', `>
  1012. > > ', etc. (or `>>>> ', `>>> ', etc., depending on line length and
  1013. nesting depth) reflecting the original order of messages, and yet
  1014. another is to use a different citation leader for each author, say `> ',
  1015. `: ', `| ', `} ' (preserving nesting so that the inclusion order of
  1016. messages is still apparent, or tagging the inclusions with authors'
  1017. names).  Yet *another* style is to use each poster's initials (or login
  1018. name) as a citation leader for that poster.  Occasionally one sees a `#
  1019. ' leader used for quotations from authoritative sources such as
  1020. standards documents; the intended allusion is to the root prompt (the
  1021. special UNIX command prompt issued when one is running as the privileged
  1022. super-user).
  1023.  
  1024. :Hacker Speech Style:
  1025. =====================
  1026.  
  1027. Hackish speech generally features extremely precise diction, careful
  1028. word choice, a relatively large working vocabulary, and relatively
  1029. little use of contractions or street slang.  Dry humor, irony, puns, and
  1030. a mildly flippant attitude are highly valued --- but an underlying
  1031. seriousness and intelligence are essential.  One should use just enough
  1032. jargon to communicate precisely and identify oneself as a member of the
  1033. culture; overuse of jargon or a breathless, excessively gung-ho attitude
  1034. is considered tacky and the mark of a loser.
  1035.  
  1036. This speech style is a variety of the precisionist English normally
  1037. spoken by scientists, design engineers, and academics in technical
  1038. fields.  In contrast with the methods of jargon construction, it is
  1039. fairly constant throughout hackerdom.
  1040.  
  1041. It has been observed that many hackers are confused by negative
  1042. questions --- or, at least, that the people to whom they are talking are
  1043. often confused by the sense of their answers.  The problem is that they
  1044. have done so much programming that distinguishes between
  1045.  
  1046.      if (going) ...
  1047.  
  1048. and
  1049.  
  1050.      if (!going) ...
  1051.  
  1052. that when they parse the question "Aren't you going?" it seems to be
  1053. asking the opposite question from "Are you going?", and so merits an
  1054. answer in the opposite sense.  This confuses English-speaking
  1055. non-hackers because they were taught to answer as though the negative
  1056. part weren't there.  In some other languages (including Russian,
  1057. Chinese, and Japanese) the hackish interpretation is standard and the
  1058. problem wouldn't arise.  Hackers often find themselves wishing for a
  1059. word like French `si' or German `doch' with which one could
  1060. unambiguously answer `yes' to a negative question.
  1061.  
  1062. For similar reasons, English-speaking hackers almost never use double
  1063. negatives, even if they live in a region where colloquial usage allows
  1064. them.  The thought of uttering something that logically ought to be an
  1065. affirmative knowing it will be misparsed as a negative tends to disturb
  1066. them.
  1067.   
  1068. In a related vein, hackers sometimes make a game of answering
  1069. questions containing logical connectives with a strictly literal
  1070. rather than colloquial interpretation.  A non-hacker who is indelicate
  1071. enough to ask a question like "So, are you working on finding that
  1072. bug *now* or leaving it until later?"  is likely to get the
  1073. perfectly correct answer "Yes!" (that is, "Yes, I'm doing it either
  1074. now or later, and you didn't ask which!").
  1075.  
  1076. :International Style:
  1077. =====================
  1078.  
  1079. Although the Jargon File remains primarily a lexicon of hacker usage in
  1080. American English, we have made some effort to get input from abroad.
  1081. Though the hacker-speak of other languages often uses translations of
  1082. jargon from English (often as transmitted to them by earlier Jargon File
  1083. versions!), the local variations are interesting, and knowledge of them
  1084. may be of some use to travelling hackers.
  1085.  
  1086. There are some references herein to `Commonwealth English'.  These are
  1087. intended to describe some variations in hacker usage as reported in the
  1088. English spoken in Great Britain and the Commonwealth (Canada, Australia,
  1089. India, etc. --- though Canada is heavily influenced by American usage).
  1090. There is also an entry on {{Commonwealth Hackish}} reporting some
  1091. general phonetic and vocabulary differences from U.S. hackish.
  1092.  
  1093. Hackers in Western Europe and (especially) Scandinavia report that they
  1094. often use a mixture of English and their native languages for technical
  1095. conversation.  Occasionally they develop idioms in their English usage
  1096. that are influenced by their native-language styles.  Some of these are
  1097. reported here.
  1098.  
  1099. A few notes on hackish usages in Russian have been added where they are
  1100. parallel with English idioms and thus comprehensible to
  1101. English-speakers.
  1102.  
  1103. :How to Use the Lexicon:
  1104. ************************
  1105.  
  1106. :Pronunciation Guide:
  1107. =====================
  1108.  
  1109. Pronunciation keys are provided in the jargon listings for all entries
  1110. that are neither dictionary words pronounced as in standard English nor
  1111. obvious compounds thereof.  Slashes bracket phonetic pronunciations,
  1112. which are to be interpreted using the following conventions:
  1113.  
  1114.   1. Syllables are hyphen-separated, except that an accent or back-accent
  1115.      follows each accented syllable (the back-accent marks a secondary
  1116.      accent in some words of four or more syllables).
  1117.  
  1118.   2. Consonants are pronounced as in American English.  The letter `g' is
  1119.      always hard (as in "got" rather than "giant"); `ch' is soft
  1120.      ("church" rather than "chemist").  The letter `j' is the sound
  1121.      that occurs twice in "judge".  The letter `s' is always as in
  1122.      "pass", never a z sound.  The digraph `kh' is the guttural of
  1123.      "loch" or "l'chaim".  The digraph 'gh' is the aspirated g+h of
  1124.      "bughouse" or "ragheap" (rare in English).
  1125.  
  1126.   3. Uppercase letters are pronounced as their English letter names; thus
  1127.      (for example) /H-L-L/ is equivalent to /aitch el el/.  /Z/ may
  1128.      be pronounced /zee/ or /zed/ depending on your local dialect.
  1129.  
  1130.   4. Vowels are represented as follows:
  1131.  
  1132.      a
  1133.             back, that
  1134.      ar
  1135.             far, mark
  1136.      aw
  1137.             flaw, caught
  1138.      ay
  1139.             bake, rain
  1140.      e
  1141.             less, men
  1142.      ee
  1143.             easy, ski
  1144.      eir
  1145.             their, software
  1146.      i
  1147.             trip, hit
  1148.      i:
  1149.             life, sky
  1150.      o
  1151.             father, palm
  1152.      oh
  1153.             flow, sew
  1154.      oo
  1155.             loot, through
  1156.      or
  1157.             more, door
  1158.      ow
  1159.             out, how
  1160.      oy
  1161.             boy, coin
  1162.      uh
  1163.             but, some
  1164.      u
  1165.             put, foot
  1166.      y
  1167.             yet, young
  1168.      yoo
  1169.             few, chew
  1170.      [y]oo
  1171.             /oo/ with optional fronting as in `news' (/nooz/ or /nyooz/)
  1172.  
  1173. A /*/ is used for the `schwa' sound of unstressed or occluded vowels
  1174. (the one that is often written with an upside-down `e').  The schwa
  1175. vowel is omitted in syllables containing vocalic r, l, m or n; that is,
  1176. `kitten' and `color' would be rendered /kit'n/ and /kuhl'r/, not
  1177. /kit'*n/ and /kuhl'*r/.
  1178.  
  1179. Note that the above table reflects only distinctions found in standard
  1180. American English (that is, the neutral dialect spoken by TV network
  1181. announcers and typical of educated speech in the Upper Midwest, Chicago,
  1182. Minneapolis/St.Paul and Philadelphia).  Many American and British
  1183. dialects make different distinctions.  One that's caused particular
  1184. comment is that our /o/ represents two different sounds in most other
  1185. dialects, one of which is often rendered as /ah/.
  1186.  
  1187. Entries with a pronunciation of `//' are written-only usages.  (No, UNIX
  1188. weenies, this does *not* mean `pronounce like previous pronunciation'!)
  1189.  
  1190. :Other Lexicon Conventions:
  1191. ===========================
  1192.  
  1193. Entries are sorted in case-blind ASCII collation order (rather than the
  1194. letter-by-letter order ignoring interword spacing common in mainstream
  1195. dictionaries), except that all entries beginning with nonalphabetic
  1196. characters are sorted after Z.  The case-blindness is a feature, not a
  1197. bug.
  1198.  
  1199. The beginning of each entry is marked by a colon (`:') at the
  1200. left margin.  This convention helps out tools like hypertext browsers
  1201. that benefit from knowing where entry boundaries are, but aren't as
  1202. context-sensitive as humans.
  1203.  
  1204. In pure ASCII renderings of the Jargon File, you will see {} used to
  1205. bracket words which themselves have entries in the File.  This isn't
  1206. done all the time for every such word, but it is done everywhere that a
  1207. reminder seems useful that the term has a jargon meaning and one might
  1208. wish to refer to its entry.
  1209.  
  1210. In this all-ASCII version, headwords for topic entries are distinguished
  1211. from those for ordinary entries by being followed by "::" rather than
  1212. ":"; similarly, references are surrounded by "{{" and "}}" rather than
  1213. "{" and "}".
  1214.  
  1215. Defining instances of terms and phrases appear in `slanted type'.  A
  1216. defining instance is one which occurs near to or as part of an
  1217. explanation of it.
  1218.  
  1219. Prefix ** is used as linguists do; to mark examples of incorrect usage.
  1220.  
  1221. We follow the `logical' quoting convention described in the Writing
  1222. Style section above.  In addition, we reserve double quotes for actual
  1223. excerpts of text or (sometimes invented) speech.  Scare quotes (which
  1224. mark a word being used in a nonstandard way), and philosopher's quotes
  1225. (which turn an utterance into the string of letters or words that name
  1226. it) are both rendered with single quotes.
  1227.  
  1228. References such as `malloc(3)' and `patch(1)' are to UNIX facilities
  1229. (some of which, such as `patch(1)', are actually freeware distributed
  1230. over USENET).  The UNIX manuals use `foo(n)' to refer to item foo in
  1231. section (n) of the manual, where n=1 is utilities, n=2 is system calls,
  1232. n=3 is C library routines, n=6 is games, and n=8 (where present) is
  1233. system administration utilities.  Sections 4, 5, and 7 of the manuals
  1234. have changed roles frequently and in any case are not referred to in any
  1235. of the entries.
  1236.  
  1237. Various abbreviations used frequently in the lexicon are summarized here:
  1238.  
  1239. abbrev.
  1240.      abbreviation
  1241. adj.
  1242.      adjective
  1243. adv.
  1244.      adverb
  1245. alt.
  1246.      alternate
  1247. cav.
  1248.      caveat
  1249. esp.
  1250.      especially
  1251. excl.
  1252.      exclamation
  1253. imp.
  1254.      imperative
  1255. interj.
  1256.      interjection
  1257. n.
  1258.      noun
  1259. obs.
  1260.      obsolete
  1261. pl.
  1262.      plural
  1263. poss.
  1264.      possibly
  1265. pref.
  1266.      prefix
  1267. prob.
  1268.      probably
  1269. prov.
  1270.      proverbial
  1271. quant.
  1272.      quantifier
  1273. suff.
  1274.      suffix
  1275. syn.
  1276.      synonym (or synonymous with)
  1277. v.
  1278.      verb (may be transitive or intransitive)
  1279. var.
  1280.      variant
  1281. vi.
  1282.      intransitive verb
  1283. vt.
  1284.      transitive verb
  1285.  
  1286. Where alternate spellings or pronunciations are given, alt.
  1287. separates two possibilities with nearly equal distribution, while
  1288. var. prefixes one that is markedly less common than the primary.
  1289.  
  1290. Where a term can be attributed to a particular subculture or is known
  1291. to have originated there, we have tried to so indicate.  Here is a
  1292. list of abbreviations used in etymologies:
  1293.  
  1294. Berkeley
  1295.      University of California at Berkeley
  1296. Cambridge
  1297.      the university in England (*not* the city in Massachusetts where
  1298.      MIT happens to be located!)
  1299. BBN
  1300.      Bolt, Beranek & Newman
  1301. CMU
  1302.      Carnegie-Mellon University
  1303. Commodore
  1304.      Commodore Business Machines
  1305. DEC
  1306.      The Digital Equipment Corporation
  1307. Fairchild
  1308.      The Fairchild Instruments Palo Alto development group
  1309. Fidonet
  1310.      See the {Fidonet} entry
  1311. IBM
  1312.      International Business Machines
  1313. MIT
  1314.      Massachusetts Institute of Technology; esp. the legendary MIT AI Lab
  1315.      culture of roughly 1971 to 1983 and its feeder groups, including the
  1316.      Tech Model Railroad Club
  1317. NRL
  1318.      Naval Research Laboratories
  1319. NYU
  1320.      New York University
  1321. OED
  1322.      The Oxford English Dictionary
  1323. Purdue
  1324.      Purdue University
  1325. SAIL
  1326.      Stanford Artificial Intelligence Laboratory (at Stanford
  1327.      University)
  1328. SI
  1329.      From Syst`eme International, the name for the standard
  1330.      conventions of metric nomenclature used in the sciences
  1331. Stanford
  1332.      Stanford University
  1333. Sun
  1334.      Sun Microsystems
  1335. TMRC
  1336.      Some MITisms go back as far as the Tech Model Railroad Club (TMRC) at
  1337.      MIT c. 1960.  Material marked TMRC is from `An Abridged Dictionary
  1338.      of the TMRC Language', originally compiled by Pete Samson in 1959
  1339. UCLA
  1340.      University of California at Los Angeles
  1341. UK
  1342.      the United Kingdom (England, Wales, Scotland, Northern Ireland)
  1343. USENET
  1344.      See the {USENET} entry
  1345. WPI
  1346.      Worcester Polytechnic Institute, site of a very active community of
  1347.      PDP-10 hackers during the 1970s
  1348. XEROX PARC
  1349.      XEROX's Palo Alto Research Center, site of much pioneering research in
  1350.      user interface design and networking
  1351. Yale
  1352.      Yale University
  1353.  
  1354. Some other etymology abbreviations such as {UNIX} and {PDP-10}
  1355. refer to technical cultures surrounding specific operating systems,
  1356. processors, or other environments.  The fact that a term is labelled
  1357. with any one of these abbreviations does not necessarily mean its use
  1358. is confined to that culture.  In particular, many terms labelled `MIT'
  1359. and `Stanford' are in quite general use.  We have tried to give some
  1360. indication of the distribution of speakers in the usage notes;
  1361. however, a number of factors mentioned in the introduction conspire to
  1362. make these indications less definite than might be desirable.
  1363.  
  1364. A few new definitions attached to entries are marked [proposed].
  1365. These are usually generalizations suggested by editors or USENET
  1366. respondents in the process of commenting on previous definitions of
  1367. those entries.  These are *not* represented as established
  1368. jargon.
  1369.  
  1370. :Format For New Entries:
  1371. ========================
  1372.  
  1373. All contributions and suggestions about the Jargon File will be
  1374. considered donations to be placed in the public domain as part of this
  1375. File, and may be used in subsequent paper editions.  Submissions may
  1376. be edited for accuracy, clarity and concision.
  1377.  
  1378. Try to conform to the format already being used --- head-words
  1379. separated from text by a colon (double colon for topic entries),
  1380. cross-references in curly brackets (doubled for topic entries),
  1381. pronunciations in slashes, etymologies in square brackets,
  1382. single-space after definition numbers and word classes, etc.  Stick to
  1383. the standard ASCII character set (7-bit printable, no high-half
  1384. characters or [nt]roff/TeX/Scribe escapes), as one of the versions
  1385. generated from the master file is an info document that has to be
  1386. viewable on a character tty.
  1387.  
  1388. We are looking to expand the file's range of technical specialties covered.
  1389. There are doubtless rich veins of jargon yet untapped in the scientific
  1390. computing, graphics, and networking hacker communities; also in numerical
  1391. analysis, computer architectures and VLSI design, language design, and many
  1392. other related fields.  Send us your jargon!
  1393.  
  1394. We are *not* interested in straight technical terms explained by
  1395. textbooks or technical dictionaries unless an entry illuminates
  1396. `underground' meanings or aspects not covered by official histories.
  1397. We are also not interested in `joke' entries --- there is a lot of
  1398. humor in the file but it must flow naturally out of the explanations
  1399. of what hackers do and how they think.
  1400.  
  1401. It is OK to submit items of jargon you have originated if they have spread
  1402. to the point of being used by people who are not personally acquainted with
  1403. you.  We prefer items to be attested by independent submission from two
  1404. different sites.
  1405.  
  1406. The Jargon File will be regularly maintained and re-posted from now on
  1407. and will include a version number.  Read it, pass it around,
  1408. contribute --- this is *your* monument!
  1409.  
  1410. The Jargon Lexicon
  1411. ******************
  1412.  
  1413. = A =
  1414. =====
  1415.  
  1416. :abbrev: /*-breev'/, /*-brev'/ n. Common abbreviation for
  1417.    `abbreviation'.
  1418.  
  1419. :ABEND: [ABnormal END] /o'bend/, /*-bend'/ n. Abnormal
  1420.    termination (of software); {crash}; {lossage}.  Derives from an
  1421.    error message on the IBM 360; used jokingly by hackers but
  1422.    seriously mainly by {code grinder}s.  Usually capitalized, but may
  1423.    appear as `abend'.  Hackers will try to persuade you that ABEND is
  1424.    called `abend' because it is what system operators do to the
  1425.    machine late on Friday when they want to call it a day, and hence
  1426.    is from the German `Abend' = `Evening'.
  1427.  
  1428. :accumulator: n. 1. Archaic term for a register.  On-line use of it
  1429.    as a synonym for `register' is a fairly reliable indication that
  1430.    the user has been around for quite a while and/or that the
  1431.    architecture under discussion is quite old.  The term in full is
  1432.    almost never used of microprocessor registers, for example, though
  1433.    symbolic names for arithmetic registers beginning in `A' derive
  1434.    from historical use of the term `accumulator' (and not, actually,
  1435.    from `arithmetic').  Confusingly, though, an `A' register name
  1436.    prefix may also stand for `address', as for example on the
  1437.    Motorola 680x0 family.  2. A register being used for arithmetic or
  1438.    logic (as opposed to addressing or a loop index), especially one
  1439.    being used to accumulate a sum or count of many items.  This use is
  1440.    in context of a particular routine or stretch of code.  "The
  1441.    FOOBAZ routine uses A3 as an accumulator."  3. One's in-basket
  1442.    (esp. among old-timers who might use sense 1).  "You want this
  1443.    reviewed?  Sure, just put it in the accumulator."  (See {stack}.)
  1444.  
  1445. :ACK: /ak/ interj. 1. [from the ASCII mnemonic for 0000110]
  1446.    Acknowledge.  Used to register one's presence (compare mainstream
  1447.    *Yo!*).  An appropriate response to {ping} or {ENQ}.
  1448.    2. [from the comic strip "Bloom County"] An exclamation of
  1449.    surprised disgust, esp. in "Ack pffft!"  Semi-humorous.
  1450.    Generally this sense is not spelled in caps (ACK) and is
  1451.    distinguished by a following exclamation point.  3. Used to
  1452.    politely interrupt someone to tell them you understand their point
  1453.    (see {NAK}).  Thus, for example, you might cut off an overly
  1454.    long explanation with "Ack.  Ack.  Ack.  I get it now".
  1455.  
  1456.    There is also a usage "ACK?" (from sense 1) meaning "Are you
  1457.    there?", often used in email when earlier mail has produced no
  1458.    reply, or during a lull in {talk mode} to see if the person has
  1459.    gone away (the standard humorous response is of course {NAK}
  1460.    (sense 2), i.e., "I'm not here").
  1461.  
  1462. :ad-hockery: /ad-hok'*r-ee/ [Purdue] n. 1. Gratuitous assumptions
  1463.    made inside certain programs, esp. expert systems, which lead to
  1464.    the appearance of semi-intelligent behavior but are in fact
  1465.    entirely arbitrary.  For example, fuzzy-matching against input
  1466.    tokens that might be typing errors against a symbol table can make
  1467.    it look as though a program knows how to spell.  2. Special-case
  1468.    code to cope with some awkward input that would otherwise cause a
  1469.    program to {choke}, presuming normal inputs are dealt with in
  1470.    some cleaner and more regular way.  Also called `ad-hackery',
  1471.    `ad-hocity' (/ad-hos'*-tee/), `ad-crockery'.  See also
  1472.    {ELIZA effect}.
  1473.  
  1474. :Ada:: n. A {{Pascal}}-descended language that has been made
  1475.    mandatory for Department of Defense software projects by the
  1476.    Pentagon.  Hackers are nearly unanimous in observing that,
  1477.    technically, it is precisely what one might expect given that kind
  1478.    of endorsement by fiat; designed by committee, crockish, difficult
  1479.    to use, and overall a disastrous, multi-billion-dollar boondoggle
  1480.    (one common description is "The PL/I of the 1980s").  Hackers
  1481.    find Ada's exception-handling and inter-process communication
  1482.    features particularly hilarious.  Ada Lovelace (the daughter of
  1483.    Lord Byron who became the world's first programmer while
  1484.    cooperating with Charles Babbage on the design of his mechanical
  1485.    computing engines in the mid-1800s) would almost certainly blanch
  1486.    at the use to which her name has latterly been put; the kindest
  1487.    thing that has been said about it is that there is probably a good
  1488.    small language screaming to get out from inside its vast,
  1489.    {elephantine} bulk.
  1490.  
  1491. :adger: /aj'r/ [UCLA] vt. To make a bonehead move with
  1492.    consequences that could have been foreseen with even slight mental
  1493.    effort.  E.g., "He started removing files and promptly adgered the
  1494.    whole project".  Compare {dumbass attack}.
  1495.  
  1496. :admin: /ad-min'/ n. Short for `administrator'; very commonly
  1497.    used in speech or on-line to refer to the systems person in charge
  1498.    on a computer.  Common constructions on this include `sysadmin'
  1499.    and `site admin' (emphasizing the administrator's role as a site
  1500.    contact for email and news) or `newsadmin' (focusing specifically
  1501.    on news).  Compare {postmaster}, {sysop}, {system
  1502.    mangler}.
  1503.  
  1504. :ADVENT: /ad'vent/ n. The prototypical computer adventure game, first
  1505.    implemented on the {PDP-10} by Will Crowther as an attempt at
  1506.    computer-refereed fantasy gaming, and expanded into a
  1507.    puzzle-oriented game by Don Woods.  Now better known as Adventure,
  1508.    but the {{TOPS-10}} operating system permitted only six-letter
  1509.    filenames.  See also {vadding}.
  1510.  
  1511.    This game defined the terse, dryly humorous style now expected in
  1512.    text adventure games, and popularized several tag lines that have
  1513.    become fixtures of hacker-speak:  "A huge green fierce snake bars
  1514.    the way!"  "I see no X here" (for some noun X).  "You are in a
  1515.    maze of twisty little passages, all alike."  "You are in a little
  1516.    maze of twisty passages, all different."  The `magic words'
  1517.    {xyzzy} and {plugh} also derive from this game.
  1518.  
  1519.    Crowther, by the way, participated in the exploration of the
  1520.    Mammoth & Flint Ridge cave system; it actually *has* a
  1521.    `Colossal Cave' and a `Bedquilt' as in the game, and the `Y2' that
  1522.    also turns up is cavers' jargon for a map reference to a secondary
  1523.    entrance.
  1524.  
  1525. :AFJ: // n. Written-only abbreviation for "April Fool's Joke".
  1526.    Elaborate April Fool's hoaxes are a long-established tradition on
  1527.    USENET and Internet; see {kremvax} for an example.  In fact,
  1528.    April Fool's Day is the *only* seasonal holiday marked by
  1529.    customary observances on the hacker networks.
  1530.  
  1531. :AI: /A-I/ n. Abbreviation for `Artificial Intelligence', so
  1532.    common that the full form is almost never written or spoken among
  1533.    hackers.
  1534.  
  1535. :AI-complete: /A-I k*m-pleet'/ [MIT, Stanford: by analogy with
  1536.    `NP-complete' (see {NP-})] adj. Used to describe problems or
  1537.    subproblems in AI, to indicate that the solution presupposes a
  1538.    solution to the `strong AI problem' (that is, the synthesis of a
  1539.    human-level intelligence).  A problem that is AI-complete is, in
  1540.    other words, just too hard.
  1541.  
  1542.    Examples of AI-complete problems are `The Vision Problem'
  1543.    (building a system that can see as well as a human) and `The
  1544.    Natural Language Problem' (building a system that can understand
  1545.    and speak a natural language as well as a human).  These may appear
  1546.    to be modular, but all attempts so far (1993) to solve them have
  1547.    foundered on the amount of context information and `intelligence'
  1548.    they seem to require. See also {gedanken}.
  1549.  
  1550. :AI koans: /A-I koh'anz/ pl.n. A series of pastiches of Zen
  1551.    teaching riddles created by Danny Hillis at the MIT AI Lab around
  1552.    various major figures of the Lab's culture (several are included
  1553.    under "{A Selection of AI Koans}" in {Appendix
  1554.    A}).  See also {ha ha only serious}, {mu}, and {{Humor,
  1555.    Hacker}}.
  1556.  
  1557. :AIDS: /aydz/ n. Short for A* Infected Disk Syndrome (`A*' is a
  1558.    {glob} pattern that matches, but is not limited to, Apple),
  1559.    this condition is quite often the result of practicing unsafe
  1560.    {SEX}.  See {virus}, {worm}, {Trojan horse},
  1561.    {virgin}.
  1562.  
  1563. :AIDX: n. /aydkz/ n. Derogatory term for IBM's perverted version
  1564.    of UNIX, AIX, especially for the AIX 3.? used in the IBM RS/6000
  1565.    series.  A victim of the dreaded "hybridism" disease, this
  1566.    attempt to combine the two main currents of the UNIX stream
  1567.    ({BSD} and {USG UNIX}) became a {monstrosity} to haunt
  1568.    system administrators' dreams.  For example, if new accounts are
  1569.    created while many users are logged on, the load average jumps
  1570.    quickly over 20 due to silly implementation of the user databases.
  1571.    For a quite similar disease, compare {HP-SUX}.  Also, compare
  1572.    {terminak}, {Macintrash} {Nominal Semidestructor},
  1573.    {Open DeathTrap}, {ScumOS}, {sun-stools}.
  1574.  
  1575. :airplane rule: n. "Complexity increases the possibility of
  1576.    failure; a twin-engine airplane has twice as many engine problems
  1577.    as a single-engine airplane."  By analogy, in both software and
  1578.    electronics, the rule that simplicity increases robustness.  It is
  1579.    correspondingly argued that the right way to build reliable systems
  1580.    is to put all your eggs in one basket, after making sure that
  1581.    you've built a really *good* basket.  See also {KISS
  1582.    Principle}.
  1583.  
  1584. :aliasing bug: n. A class of subtle programming errors that can
  1585.    arise in code that does dynamic allocation, esp. via
  1586.    `malloc(3)' or equivalent.  If several pointers address
  1587.    (`aliases for') a given hunk of storage, it may happen that the
  1588.    storage is freed or reallocated (and thus moved) through one alias
  1589.    and then referenced through another, which may lead to subtle (and
  1590.    possibly intermittent) lossage depending on the state and the
  1591.    allocation history of the malloc {arena}.  Avoidable by use of
  1592.    allocation strategies that never alias allocated core, or by use of
  1593.    higher-level languages, such as {LISP}, which employ a garbage
  1594.    collector (see {GC}).  Also called a {stale pointer bug}.
  1595.    See also {precedence lossage}, {smash the stack},
  1596.    {fandango on core}, {memory leak}, {memory smash},
  1597.    {overrun screw}, {spam}.
  1598.  
  1599.    Historical note: Though this term is nowadays associated with
  1600.    C programming, it was already in use in a very similar sense in the
  1601.    Algol-60 and FORTRAN communities in the 1960s.
  1602.  
  1603. :all-elbows: [MS-DOS] adj. Of a TSR (terminate-and-stay-resident)
  1604.    IBM PC program, such as the N pop-up calendar and calculator
  1605.    utilities that circulate on {BBS} systems: unsociable.  Used to
  1606.    describe a program that rudely steals the resources that it needs
  1607.    without considering that other TSRs may also be resident.  One
  1608.    particularly common form of rudeness is lock-up due to programs
  1609.    fighting over the keyboard interrupt.  See {rude}, also
  1610.    {mess-dos}.
  1611.  
  1612. :alpha particles: n. See {bit rot}.
  1613.  
  1614. :alt: /awlt/ 1. n. The alt shift key on an IBM PC or {clone}
  1615.    keyboard; see {bucky bits}, sense 2 (though typical PC usage does
  1616.    not simply set the 0200 bit).  2. n. The `clover' or `Command'
  1617.    key on a Macintosh; use of this term usually reveals that the
  1618.    speaker hacked PCs before coming to the Mac (see also {feature
  1619.    key}).  Some Mac hackers, confusingly, reserve `alt' for the Option
  1620.    key (and it is so labeled on some Mac II keyboards).  3. n.obs.
  1621.    [PDP-10; often capitalized to ALT] Alternate name for the ASCII
  1622.    ESC character (ASCII 0011011), after the keycap labeling on some
  1623.    older terminals; also `altmode' (/awlt'mohd/).  This character
  1624.    was almost never pronounced `escape' on an ITS system, in
  1625.    {TECO}, or under TOPS-10 --- always alt, as in "Type alt alt to
  1626.    end a TECO command" or "alt-U onto the system" (for "log onto
  1627.    the [ITS] system").  This usage probably arose because alt is more
  1628.    convenient to say than `escape', especially when followed by
  1629.    another alt or a character (or another alt *and* a character,
  1630.    for that matter).
  1631.  
  1632. :alt bit: /awlt bit/ [from alternate] adj. See {meta bit}.
  1633.  
  1634. :altmode: n. Syn. {alt} sense 3.
  1635.  
  1636. :Aluminum Book: [MIT] n. `Common LISP: The Language', by
  1637.    Guy L.  Steele Jr. (Digital Press, first edition 1984, second
  1638.    edition 1990).  Note that due to a technical screwup some printings
  1639.    of the second edition are actually of a color the author describes
  1640.    succinctly as "yucky green".  See also {{book titles}}.
  1641.  
  1642. :amoeba: n. Humorous term for the Commodore Amiga personal computer.
  1643.  
  1644. :amp off: [Purdue] vt. To run in {background}.  From the UNIX shell `&'
  1645.    operator.
  1646.  
  1647. :amper: n. Common abbreviation for the name of the ampersand (`&',
  1648.    ASCII 0100110) character.  See {{ASCII}} for other synonyms.
  1649.  
  1650. :angle brackets: n. Either of the characters `<' (ASCII
  1651.    0111100) and `>' (ASCII 0111110) (ASCII less-than or
  1652.    greater-than signs).  Typographers in the {Real World} use angle
  1653.    brackets which are either taller and slimmer (the ISO `Bra' and
  1654.    `Ket' characters), or significantly smaller (single or double
  1655.    guillemets) than the less-than and greater-than signs.
  1656.    See {broket}, {{ASCII}}.
  1657.  
  1658. :angry fruit salad: n. A bad visual-interface design that uses too
  1659.    many colors.  (This term derives, of course, from the bizarre
  1660.    day-glo colors found in canned fruit salad.)  Too often one sees
  1661.    similar effects from interface designers using color window systems
  1662.    such as {X}; there is a tendency to create displays that are
  1663.    flashy and attention-getting but uncomfortable for long-term
  1664.    use.
  1665.  
  1666. :annoybot: /*-noy-bot/ [IRC] n. See {robot}.
  1667.  
  1668. :AOS: 1. /aws/ (East Coast), /ay-os/ (West Coast) [based on a
  1669.    PDP-10 increment instruction] vt.,obs. To increase the amount of
  1670.    something.  "AOS the campfire."  Usage: considered silly, and now
  1671.    obsolete.  Now largely supplanted by {bump}.  See {SOS}.
  1672.    2. n. A {{Multics}}-derived OS supported at one time by Data
  1673.    General.  This was pronounced /A-O-S/ or /A-os/.  A spoof of
  1674.    the standard AOS system administrator's manual (`How to Load
  1675.    and Generate your AOS System') was created, issued a part number,
  1676.    and circulated as photocopy folklore; it was called `How to
  1677.    Goad and Levitate your CHAOS System'.  3. n. Algebraic Operating
  1678.    System, in reference to those calculators which use infix instead
  1679.    of postfix (reverse Polish) notation.
  1680.  
  1681.    Historical note: AOS in sense 1 was the name of a {PDP-10}
  1682.    instruction that took any memory location in the computer and added
  1683.    1 to it; AOS meant `Add One and do not Skip'.  Why, you may ask,
  1684.    does the `S' stand for `do not Skip' rather than for `Skip'?  Ah,
  1685.    here was a beloved piece of PDP-10 folklore.  There were eight such
  1686.    instructions: AOSE added 1 and then skipped the next instruction
  1687.    if the result was Equal to zero; AOSG added 1 and then skipped if
  1688.    the result was Greater than 0; AOSN added 1 and then skipped
  1689.    if the result was Not 0; AOSA added 1 and then skipped Always;
  1690.    and so on.  Just plain AOS didn't say when to skip, so it never
  1691.    skipped.
  1692.  
  1693.    For similar reasons, AOJ meant `Add One and do not Jump'.  Even
  1694.    more bizarre, SKIP meant `do not SKIP'!  If you wanted to skip the
  1695.    next instruction, you had to say `SKIPA'.  Likewise, JUMP meant
  1696.    `do not JUMP'; the unconditional form was JUMPA.  However, hackers
  1697.    never did this.  By some quirk of the 10's design, the {JRST}
  1698.    (Jump and ReSTore flag with no flag specified) was actually faster
  1699.    and so was invariably used.  Such were the perverse mysteries of
  1700.    assembler programming.
  1701.  
  1702. :app: /ap/ n. Short for `application program', as opposed to a
  1703.    systems program.  Apps are what systems vendors are forever chasing
  1704.    developers to create for their environments so they can sell more
  1705.    boxes.  Hackers tend not to think of the things they themselves run
  1706.    as apps; thus, in hacker parlance the term excludes compilers,
  1707.    program editors, games, and messaging systems, though a user would
  1708.    consider all those to be apps.  (Broadly, an app is often a
  1709.    self-contained environment for performing some well-defined task
  1710.    such as `word processing'; hackers tend to prefer more
  1711.    general-purpose tools.) Oppose {tool}, {operating
  1712.    system}.
  1713.  
  1714. :arena: [UNIX] n. The area of memory attached to a process by
  1715.    `brk(2)' and `sbrk(2)' and used by `malloc(3)' as
  1716.    dynamic storage.  So named from a `malloc: corrupt arena'
  1717.    message emitted when some early versions detected an impossible
  1718.    value in the free block list.  See {overrun screw}, {aliasing
  1719.    bug}, {memory leak}, {memory smash}, {smash the
  1720.    stack}.
  1721.  
  1722. :arg: /arg/ n. Abbreviation for `argument' (to a function),
  1723.    used so often as to have become a new word (like `piano' from
  1724.    `pianoforte').  "The sine function takes 1 arg, but the
  1725.    arc-tangent function can take either 1 or 2 args."  Compare
  1726.    {param}, {parm}, {var}.
  1727.  
  1728. :ARMM: [acronym, `Automated Retroactive Minimal Moderation'] n. A
  1729.    USENET robot created by Dick Depew of Munroe Falls, Ohio.  It was
  1730.    intended to automatically cancel posts from anonymous-posting
  1731.    sites.  Unfortunately, the robot's recognizer for anonymous
  1732.    postings triggered on its own automatically-generated control
  1733.    messages!  Transformed by this stroke of programming ineptitude
  1734.    into a monster of Frankensteinian proportions, it broke loose on
  1735.    the night of March 31, 1993 and proceeded to spam
  1736.    news.admin.policy with a recursive explosion of over 200
  1737.    messages.
  1738.  
  1739.    ARMM's bug produced a recursive {cascade} of messages each of which
  1740.    mechanically added text to the ID and Subject and some other
  1741.    headers of its parent.  This produced a flood of messages in which
  1742.    each header took up several screens and each message ID and subject
  1743.    line got longer and longer and longer.
  1744.  
  1745.    Reactions varied from amusememt to outrage.  The pathological
  1746.    messages crashed at least one mail system, and upset people paying
  1747.    line charges for their USENET feeds.  One poster described the ARMM
  1748.    debacle as "instant USENET history" (instantly establishing the
  1749.    term {despew}), and it has since been widely cited as a
  1750.    cautionary example of the havoc the combination of good intentions
  1751.    and incompetence can wreak on a network.  Compare {Great Worm,
  1752.    The}; {sorcerer's apprentice mode}.  See also {software
  1753.    laser}, {network meltdown}.
  1754.  
  1755. :armor-plated: n. Syn. for {bulletproof}.
  1756.  
  1757. :asbestos: adj. Used as a modifier to anything intended to protect
  1758.    one from {flame}s; also in other highly {flame}-suggestive
  1759.    usages.  See, for example, {asbestos longjohns} and {asbestos
  1760.    cork award}.
  1761.  
  1762. :asbestos cork award: n. Once, long ago at MIT, there was a
  1763.    {flamer} so consistently obnoxious that another hacker designed,
  1764.    had made, and distributed posters announcing that said flamer had
  1765.    been nominated for the `asbestos cork award'.  (Any reader in
  1766.    doubt as to the intended application of the cork should consult the
  1767.    etymology under {flame}.)  Since then, it is agreed that only a
  1768.    select few have risen to the heights of bombast required to earn
  1769.    this dubious dignity --- but there is no agreement on *which*
  1770.    few.
  1771.  
  1772. :asbestos longjohns: n. Notional garments donned by {USENET}
  1773.    posters just before emitting a remark they expect will elicit
  1774.    {flamage}.  This is the most common of the {asbestos}
  1775.    coinages.  Also `asbestos underwear', `asbestos overcoat',
  1776.    etc.
  1777.  
  1778. :ASCII:: [American Standard Code for Information Interchange]
  1779.    /as'kee/ n. The predominant character set encoding of present-day
  1780.    computers.  he modern version uses 7 bits for each character,
  1781.    whereas most earlier codes (including an early version of ASCII)
  1782.    used fewer.  This change allowed the inclusion of lowercase letters
  1783.    --- a major {win} --- but it did not provide for accented
  1784.    letters or any other letterforms not used in English (such as the
  1785.    German sharp-S
  1786.    or the ae-ligature
  1787.    which is a letter in, for example, Norwegian).  It could be worse,
  1788.    though.  It could be much worse.  See {{EBCDIC}} to understand how.
  1789.    
  1790.    Computers are much pickier and less flexible about spelling than
  1791.    humans; thus, hackers need to be very precise when talking about
  1792.    characters, and have developed a considerable amount of verbal
  1793.    shorthand for them.  Every character has one or more names --- some
  1794.    formal, some concise, some silly.  Common jargon names for ASCII
  1795.    characters are collected here.  See also individual entries for
  1796.    {bang}, {excl}, {open}, {ques}, {semi}, {shriek},
  1797.    {splat}, {twiddle}, and {Yu-Shiang Whole Fish}.
  1798.  
  1799.    This list derives from revision 2.3 of the USENET ASCII
  1800.    pronunciation guide.  Single characters are listed in ASCII order;
  1801.    character pairs are sorted in by first member.  For each character,
  1802.    common names are given in rough order of popularity, followed by
  1803.    names that are reported but rarely seen; official ANSI/CCITT names
  1804.    are surrounded by brokets: <>.  Square brackets mark the
  1805.    particularly silly names introduced by {INTERCAL}.  The
  1806.    abbreviations "l/r" and "o/c" stand for left/right and
  1807.    "open/close" respectively.  Ordinary parentheticals provide some
  1808.    usage information.
  1809.  
  1810.      !
  1811.           Common: {bang}; pling; excl; shriek; <exclamation mark>.
  1812.           Rare: factorial; exclam; smash; cuss; boing; yell; wow; hey;
  1813.           wham; eureka; [spark-spot]; soldier.
  1814.  
  1815.      "
  1816.           Common: double quote; quote.  Rare: literal mark;
  1817.           double-glitch; <quotation marks>; <dieresis>; dirk;
  1818.           [rabbit-ears]; double prime.
  1819.  
  1820.      #
  1821.           Common: number sign; pound; pound sign; hash; sharp; {crunch};
  1822.           hex; [mesh].  Rare: grid; cross-hatch; oc-to-thorpe; flash;
  1823.           <square>, pig-pen; tic-tac-toe; scratchmark; thud; thump;
  1824.           {splat}.
  1825.  
  1826.      $
  1827.           Common: dollar; <dollar sign>.  Rare: currency symbol; buck;
  1828.           cash; string (from BASIC); escape (when used as the echo of
  1829.           ASCII ESC); ding; cache; [big money].
  1830.  
  1831.      %
  1832.           Common: percent; <percent sign>; mod; grapes.  Rare:
  1833.           [double-oh-seven].
  1834.  
  1835.      &
  1836.           Common: <ampersand>; amper; and.  Rare: address (from C);
  1837.           reference (from C++); andpersand; bitand; background (from
  1838.           `sh(1)'); pretzel; amp.  [INTERCAL called this `ampersand';
  1839.           what could be sillier?]
  1840.  
  1841.      '
  1842.           Common: single quote; quote; <apostrophe>.  Rare: prime;
  1843.           glitch; tick; irk; pop; [spark]; <closing single quotation
  1844.           mark>; <acute accent>.
  1845.  
  1846.      ( )
  1847.  
  1848.           Common: l/r paren; l/r parenthesis; left/right; o-pen-/-close;
  1849.           par-en/the-sis; o/c paren; o/c par-en-the-sis; l/r
  1850.           paren-the-sis; l/r ba-na-na.  Rare: so/al-ready;
  1851.           lparen/rparen; <opening/closing parenthesis>; o/c round
  1852.           bracket, l/r round bracket, [wax/wane];
  1853.           par-en-this-ey/un-par-en-this-ey; l/r ear.
  1854.  
  1855.      *
  1856.           Common: star; [{splat}]; <asterisk>.  Rare: wildcard; gear;
  1857.           dingle; mult; spider; aster; times; twinkle; glob (see
  1858.           {glob}); {Nathan Hale}.
  1859.  
  1860.      +
  1861.           Common: <plus>; add.  Rare: cross; [intersection].
  1862.  
  1863.      ,
  1864.           Common: <comma>.  Rare: <cedilla>; [tail].
  1865.  
  1866.      -
  1867.           Common: dash; <hyphen>; <minus>.  Rare: [worm]; option; dak;
  1868.           bithorpe.
  1869.  
  1870.      .
  1871.           Common: dot; point; <period>; <decimal point>.  Rare: radix
  1872.           point; full stop; [spot].
  1873.  
  1874.      /
  1875.           Common: slash; stroke; <slant>; forward slash.  Rare:
  1876.           diagonal; solidus; over; slak; virgule; [slat].
  1877.  
  1878.      :
  1879.           Common: <colon>.  Rare: dots; [two-spot].
  1880.  
  1881.      ;
  1882.           Common: <semicolon>; semi.  Rare: weenie; [hybrid],
  1883.           pit-thwong.
  1884.  
  1885.      < >
  1886.           Common: <less/great-er than>; bra/ket; l/r angle; l/r angle
  1887.           bracket; l/r broket.  Rare: from/{into, towards}; read
  1888.           from/write to; suck/blow; comes-from/gozinta; in/out;
  1889.           crunch/zap (all from UNIX); [angle/right angle].
  1890.  
  1891.      =
  1892.           Common: <equals>; gets; takes.  Rare: quadrathorpe;
  1893.           [half-mesh].
  1894.  
  1895.      ?
  1896.           Common: query; <question mark>; {ques}.  Rare: whatmark;
  1897.           [what]; wildchar; huh; hook; buttonhook; hunchback.
  1898.  
  1899.      @
  1900.           Common: at sign; at; strudel.  Rare: each; vortex; whorl;
  1901.           [whirlpool]; cyclone; snail; ape; cat; rose; cabbage;
  1902.           <commercial at>.
  1903.  
  1904.      V
  1905.           Rare: [book].
  1906.  
  1907.      [ ]
  1908.           Common: l/r square bracket; l/r bracket; <opening/closing
  1909.           brack-et>; brack-et/un-brack-et.  Rare: square-/-un-square; [U
  1910.           turn/U turn back].
  1911.  
  1912.      \
  1913.           Common: backslash; escape (from C/UNIX); reverse slash; slosh;
  1914.           backslant; backwhack.  Rare: bash; <reverse slant>; reversed
  1915.           virgule; [backslat].
  1916.  
  1917.      ^
  1918.           Common: hat; control; uparrow; caret; <circumflex>.  Rare:
  1919.           chevron; [shark (or shark-fin)]; to the (`to the power of');
  1920.           fang; pointer (in Pascal).
  1921.  
  1922.      _
  1923.           Common: <underline>; underscore; underbar; under.  Rare:
  1924.           score; backarrow; skid; [flatworm].
  1925.  
  1926.      `
  1927.           Common: backquote; left quote; left single quote; open quote;
  1928.           <grave accent>; grave.  Rare: backprime; [backspark];
  1929.           unapostrophe; birk; blugle; back tick; back glitch; push;
  1930.           <opening single quotation mark>; quasiquote.
  1931.  
  1932.      { }
  1933.           Common: o/c brace; l/r brace; l/r squiggly; l/r squiggly
  1934.           bracket/brace; l/r curly bracket/brace; <opening/closing
  1935.           brace>.  Rare: brace/unbrace; curly/un-curly; leftit/rytit;
  1936.           l/r squirrelly; [embrace/bracelet].
  1937.  
  1938.      |
  1939.           Common: bar; or; or-bar; v-bar; pipe; vertical bar.  Rare:
  1940.           <vertical line>; gozinta; thru; pipesinta (last three from
  1941.           UNIX); [spike].
  1942.  
  1943.      ~ 
  1944.           Common: <tilde>; squiggle; {twiddle}; not.  Rare: approx;
  1945.           wiggle; swung dash; enyay; [sqiggle (sic)].
  1946.  
  1947.    The pronunciation of `#' as `pound' is common in the U.S.
  1948.    but a bad idea; {{Commonwealth Hackish}} has its own, rather more
  1949.    apposite use of `pound sign' (confusingly, on British keyboards
  1950.    the pound graphic
  1951.    happens to replace `#'; thus Britishers sometimes
  1952.    call `#' on a U.S.-ASCII keyboard `pound', compounding the
  1953.    American error).  The U.S. usage derives from an old-fashioned
  1954.    commercial practice of using a `#' suffix to tag pound weights
  1955.    on bills of lading.  The character is usually pronounced `hash'
  1956.    outside the U.S.
  1957.  
  1958.    The `uparrow' name for circumflex and `leftarrow' name for
  1959.    underline are historical relics from archaic ASCII (the 1963
  1960.    version), which had these graphics in those character positions
  1961.    rather than the modern punctuation characters.
  1962.  
  1963.    The `swung dash' or `approximation' sign is not quite the same
  1964.    as tilde in typeset material
  1965.    but the ASCII tilde serves for both (compare {angle
  1966.    brackets}).
  1967.  
  1968.    Some other common usages cause odd overlaps.  The `#',
  1969.    `$', `>', and `&' characters, for example, are all
  1970.    pronounced "hex" in different communities because various
  1971.    assemblers use them as a prefix tag for hexadecimal constants (in
  1972.    particular, `#' in many assembler-programming cultures,
  1973.    `$' in the 6502 world, `>' at Texas Instruments, and
  1974.    `&' on the BBC Micro, Sinclair, and some Z80 machines).  See
  1975.    also {splat}.
  1976.  
  1977.    The inability of ASCII text to correctly represent any of the
  1978.    world's other major languages makes the designers' choice of 7 bits
  1979.    look more and more like a serious {misfeature} as the use of
  1980.    international networks continues to increase (see {software
  1981.    rot}).  Hardware and software from the U.S. still tends to embody
  1982.    the assumption that ASCII is the universal character set and that
  1983.    characters have 7 bits; this is a a major irritant to people who
  1984.    want to use a character set suited to their own languages.
  1985.    Perversely, though, efforts to solve this problem by proliferating
  1986.    `national' character sets produce an evolutionary pressure to use
  1987.    a *smaller* subset common to all those in use.
  1988.  
  1989. :ASCII art: n. The fine art of drawing diagrams using the ASCII
  1990.    character set (mainly `|', `-', `/', `\', and
  1991.    `+').  Also known as `character graphics' or `ASCII
  1992.    graphics'; see also {boxology}.  Here is a serious example:
  1993.  
  1994.  
  1995.          o----)||(--+--|<----+   +---------o + D O
  1996.            L  )||(  |        |   |             C U
  1997.          A I  )||(  +-->|-+  |   +-\/\/-+--o -   T
  1998.          C N  )||(        |  |   |      |        P
  1999.            E  )||(  +-->|-+--)---+--)|--+-o      U
  2000.               )||(  |        |          | GND    T
  2001.          o----)||(--+--|<----+----------+     
  2002.  
  2003.             A power supply consisting of a full
  2004.             wave rectifier circuit feeding a
  2005.             capacitor input filter circuit
  2006.  
  2007.                                Figure 1.
  2008.  
  2009.    And here are some very silly examples:
  2010.  
  2011.  
  2012.        |\/\/\/|     ____/|              ___    |\_/|    ___
  2013.        |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
  2014.        |      |      =(_)=  THPHTH!   /      \/     \/      \
  2015.        | (o)(o)        U             /                       \
  2016.        C      _)  (__)                \/\/\/\  _____  /\/\/\/
  2017.        | ,___|    (oo)                       \/     \/
  2018.        |   /       \/-------\         U                  (__)
  2019.       /____\        ||     | \    /---V  `v'-            oo )
  2020.      /      \       ||---W||  *  * |--|   || |`.         |_/\
  2021.  
  2022.                                Figure 2.
  2023.  
  2024.    There is an important subgenre of humorous ASCII art that takes
  2025.    advantage of the names of the various characters to tell a
  2026.    pun-based joke.
  2027.  
  2028.      +--------------------------------------------------------+
  2029.      |      ^^^^^^^^^^^^                                      |
  2030.      | ^^^^^^^^^^^            ^^^^^^^^^                       |
  2031.      |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
  2032.      |        ^^^^^^^         B       ^^^^^^^^^               |
  2033.      |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
  2034.      +--------------------------------------------------------+
  2035.                   " A Bee in the Carrot Patch "
  2036.  
  2037.                                Figure 3.
  2038.  
  2039.    Within humorous ASCII art, there is for some reason an entire
  2040.    flourishing subgenre of pictures of silly cows.  Four of these are
  2041.    reproduced in Figure 2; here are three more:
  2042.  
  2043.  
  2044.               (__)              (__)              (__)
  2045.               (\/)              ($$)              (**)
  2046.        /-------\/        /-------\/        /-------\/
  2047.       / | 666 ||        / |=====||        / |     ||
  2048.      *  ||----||       *  ||----||       *  ||----||
  2049.         ~~    ~~          ~~    ~~          ~~    ~~ 
  2050.      Satanic cow    This cow is a Yuppie   Cow in love
  2051.  
  2052.                                Figure 4.
  2053.  
  2054. :ASCIIbetical order: /as'kee-be'-t*-kl or'dr/ adj.,n. Used to
  2055.    indicate that data is sorted in ASCII collated order rather than
  2056.    alphabetical order.  This lexicon is sorted in something close to
  2057.    ASCIIbetical order, but with case ignored and entries beginning
  2058.    with non-alphabetic characters moved to the end.
  2059.  
  2060. :atomic: [from Gk. `atomos', indivisible] adj. Indivisible;
  2061.    cannot be split up.  For example, an instruction may be said to do
  2062.    several things `atomically', i.e., all the things are done
  2063.    immediately, and there is no chance of the instruction being
  2064.    half-completed.  Esp. used to convey that an operation cannot be
  2065.    screwed up by interrupts.  "This routine locks the file and
  2066.    increments the file's semaphore atomically."  This usage has none
  2067.    of the connotations that `atomic' has in mainstream English (i.e.
  2068.    of particles of matter, nuclear explosions etc.).
  2069.  
  2070. :attoparsec: n. About an inch.  `atto-' is the standard SI
  2071.    prefix for multiplication by 10^(-18).  A parsec
  2072.    (parallax-second) is 3.26 light-years; an attoparsec is thus
  2073.    3.26 * 10^(-18) light years, or about 3.1 cm (thus,
  2074.    1 attoparsec/{microfortnight} equals about 1 inch/sec).  This
  2075.    unit is reported to be in use (though probably not very seriously)
  2076.    among hackers in the U.K.  See {micro-}.
  2077.  
  2078. :autobogotiphobia: /aw'to-boh-got`*-foh'bee-*/ n. See {bogotify}.
  2079.  
  2080. :automagically: /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/ adv.
  2081.    Automatically, but in a way that, for some reason (typically
  2082.    because it is too complicated, or too ugly, or perhaps even too
  2083.    trivial), the speaker doesn't feel like explaining to you.  See
  2084.    {magic}.  "The C-INTERCAL compiler generates C, then automagically
  2085.    invokes `cc(1)' to produce an executable."
  2086.  
  2087. :avatar: [CMU, Tektronix] n. Syn. {root}, {superuser}.  There
  2088.    are quite a few UNIX machines on which the name of the superuser
  2089.    account is `avatar' rather than `root'.  This quirk was
  2090.    originated by a CMU hacker who disliked the term `superuser',
  2091.    and was propagated through an ex-CMU hacker at Tektronix.
  2092.  
  2093. :awk: 1. n. [UNIX techspeak] An interpreted language for massaging
  2094.    text data developed by Alfred Aho, Peter Weinberger, and Brian
  2095.    Kernighan (the name derives from their initials).  It is
  2096.    characterized by C-like syntax, a declaration-free approach to
  2097.    variable typing and declarations, associative arrays, and
  2098.    field-oriented text processing.  See also {Perl}.  2. n.
  2099.    Editing term for an expression awkward to manipulate through normal
  2100.    {regexp} facilities (for example, one containing a
  2101.    {newline}).  3. vt. To process data using `awk(1)'.
  2102.  
  2103. = B =
  2104. =====
  2105.  
  2106. :back door: n. A hole in the security of a system deliberately left
  2107.    in place by designers or maintainers.  The motivation for such
  2108.    holes is not always sinister; some operating systems, for example,
  2109.    come out of the box with privileged accounts intended for use by
  2110.    field service technicians or the vendor's maintenance programmers.
  2111.    Syn. {trap door}; may also be called a `wormhole'.  See also
  2112.    {iron box}, {cracker}, {worm}, {logic bomb}.
  2113.  
  2114.    Historically, back doors have often lurked in systems longer than
  2115.    anyone expected or planned, and a few have become widely known.
  2116.    The infamous {RTM} worm of late 1988, for example, used a back door
  2117.    in the {BSD} UNIX `sendmail(8)' utility.
  2118.  
  2119.    Ken Thompson's 1983 Turing Award lecture to the ACM revealed the
  2120.    existence of a back door in early UNIX versions that may have
  2121.    qualified as the most fiendishly clever security hack of all time.
  2122.    The C compiler contained code that would recognize when the
  2123.    `login' command was being recompiled and insert some code
  2124.    recognizing a password chosen by Thompson, giving him entry to the
  2125.    system whether or not an account had been created for him.
  2126.  
  2127.    Normally such a back door could be removed by removing it from the
  2128.    source code for the compiler and recompiling the compiler.  But to
  2129.    recompile the compiler, you have to *use* the compiler --- so
  2130.    Thompson also arranged that the compiler would *recognize when
  2131.    it was compiling a version of itself*, and insert into the
  2132.    recompiled compiler the code to insert into the recompiled
  2133.    `login' the code to allow Thompson entry --- and, of course, the
  2134.    code to recognize itself and do the whole thing again the next time
  2135.    around!  And having done this once, he was then able to recompile
  2136.    the compiler from the original sources; the hack perpetuated itself
  2137.    invisibly, leaving the back door in place and active but with no
  2138.    trace in the sources.
  2139.  
  2140.    The talk that revealed this truly moby hack was published as
  2141.    "Reflections on Trusting Trust", `Communications of the
  2142.    ACM 27', 8 (August 1984), pp. 761--763.
  2143.  
  2144. :backbone cabal: n. A group of large-site administrators who pushed
  2145.    through the {Great Renaming} and reined in the chaos of {USENET}
  2146.    during most of the 1980s.  The cabal {mailing list} disbanded in
  2147.    late 1988 after a bitter internal catfight.
  2148.  
  2149. :backbone site: n. A key USENET and email site; one that processes
  2150.    a large amount of third-party traffic, especially if it is the home
  2151.    site of any of the regional coordinators for the USENET maps.
  2152.    Notable backbone sites as of early 1993 include uunet and the
  2153.    mail machines at Rutgers University, UC Berkeley, DEC's Western
  2154.    Research Laboratories, Ohio State University, and the University of
  2155.    Texas.  Compare {rib site}, {leaf site}.
  2156.  
  2157. :backgammon:: See {bignum} (sense 3), {moby} (sense 4), and
  2158.    {pseudoprime}.
  2159.  
  2160. :background: n.,adj.,vt.  To do a task `in background' is to do
  2161.    it whenever {foreground} matters are not claiming your undivided
  2162.    attention, and `to background' something means to relegate it to
  2163.    a lower priority.  "For now, we'll just print a list of nodes and
  2164.    links; I'm working on the graph-printing problem in background."
  2165.    Note that this implies ongoing activity but at a reduced level or
  2166.    in spare time, in contrast to mainstream `back burner' (which
  2167.    connotes benign neglect until some future resumption of activity).
  2168.    Some people prefer to use the term for processing that they have
  2169.    queued up for their unconscious minds (a tack that one can often
  2170.    fruitfully take upon encountering an obstacle in creative work).
  2171.    Compare {amp off}, {slopsucker}.
  2172.  
  2173.    Technically, a task running in background is detached from the
  2174.    terminal where it was started (and often running at a lower
  2175.    priority); oppose {foreground}.  Nowadays this term is primarily
  2176.    associated with {{UNIX}}, but it appears to have been first used
  2177.    in this sense on OS/360.
  2178.  
  2179. :backspace and overstrike: interj. Whoa!  Back up.  Used to suggest
  2180.    that someone just said or did something wrong.  Common among
  2181.    APL programmers.
  2182.  
  2183. :backward combatability: /bak'w*rd k*m-bat'*-bil'*-tee/ [from
  2184.    `backward compatibility'] n.  A property of hardware or software
  2185.    revisions in which previous protocols, formats, layouts, etc. are
  2186.    irrevocably discarded in favor of `new and improved' protocols,
  2187.    formats, and layouts, leaving the previous ones not merely
  2188.    deprecated but actively defeated.  (Too often, the old and new
  2189.    versions cannot definitively be distinguished, such that lingering
  2190.    instances of the previous ones yield crashes or other infelicitous
  2191.    effects, as opposed to a simple "version mismatch" message.)  A
  2192.    backwards compatible change, on the other hand, allows old versions
  2193.    to coexist without crashes or error messages, but too many major
  2194.    changes incorporating elaborate backwards compatibility processing
  2195.    can lead to extreme {software bloat}.  See also {flag
  2196.    day}.
  2197.  
  2198. :BAD: /B-A-D/ [IBM: acronym, `Broken As Designed'] adj. Said
  2199.    of a program that is {bogus} because of bad design and misfeatures
  2200.    rather than because of bugginess.  See {working as designed}.
  2201.  
  2202. :Bad Thing: [from the 1930 Sellar & Yeatman parody `1066 And
  2203.    All That'] n. Something that can't possibly result in improvement
  2204.    of the subject.  This term is always capitalized, as in "Replacing
  2205.    all of the 9600-baud modems with bicycle couriers would be a Bad
  2206.    Thing".  Oppose {Good Thing}.  British correspondents confirm
  2207.    that {Bad Thing} and {Good Thing} (and prob. therefore {Right
  2208.    Thing} and {Wrong Thing}) come from the book referenced in the
  2209.    etymology, which discusses rulers who were Good Kings but Bad
  2210.    Things.  This has apparently created a mainstream idiom on the
  2211.    British side of the pond.
  2212.  
  2213. :bag on the side: n. An extension to an established hack that is
  2214.    supposed to add some functionality to the original.  Usually
  2215.    derogatory, implying that the original was being overextended and
  2216.    should have been thrown away, and the new product is ugly,
  2217.    inelegant, or bloated.  Also v. phrase, `to hang a bag on the side
  2218.    [of]'.  "C++?  That's just a bag on the side of C ...."
  2219.    "They want me to hang a bag on the side of the accounting
  2220.    system."
  2221.  
  2222. :bagbiter: /bag'bi:t-*r/ n. 1. Something, such as a program or a
  2223.    computer, that fails to work, or works in a remarkably clumsy
  2224.    manner.  "This text editor won't let me make a file with a line
  2225.    longer than 80 characters!  What a bagbiter!"  2. A person who has
  2226.    caused you some trouble, inadvertently or otherwise, typically by
  2227.    failing to program the computer properly.  Synonyms: {loser},
  2228.    {cretin}, {chomper}.  3. adj. `bagbiting' Having the
  2229.    quality of a bagbiter.  "This bagbiting system won't let me
  2230.    compute the factorial of a negative number."  Compare {losing},
  2231.    {cretinous}, {bletcherous}, `barfucious' (under
  2232.    {barfulous}) and `chomping' (under {chomp}).  4. `bite
  2233.    the bag' vi. To fail in some manner.  "The computer keeps crashing
  2234.    every five minutes."  "Yes, the disk controller is really biting
  2235.    the bag."  The original loading of these terms was almost
  2236.    undoubtedly obscene, possibly referring to the scrotum, but in
  2237.    their current usage they have become almost completely
  2238.    sanitized.
  2239.  
  2240.    A program called Lexiphage on the old MIT AI PDP-10 would draw on a
  2241.    selected victim's bitmapped terminal the words "THE BAG" in
  2242.    ornate letters, followed a pair of jaws biting pieces of it off.
  2243.    This is the first and to date only known example of a program
  2244.    *intended* to be a bagbiter.
  2245.  
  2246. :bamf: /bamf/ 1. [from old X-Men comics] interj. Notional sound
  2247.    made by a person or object teleporting in or out of the hearer's
  2248.    vicinity.  Often used in {virtual reality} (esp. {MUD})
  2249.    electronic {fora} when a character wishes to make a dramatic
  2250.    entrance or exit.  2. The sound of magical transformation, used in
  2251.    virtual reality {fora} like sense 1.
  2252.  
  2253. :banana label: n. The labels often used on the sides of {macrotape}
  2254.    reels, so called because they are shaped roughly like blunt-ended
  2255.    bananas.  This term, like macrotapes themselves, is still current
  2256.    but visibly headed for obsolescence.
  2257.  
  2258. :banana problem: n. [from the story of the little girl who said "I
  2259.    know how to spell `banana', but I don't know when to stop"].  Not
  2260.    knowing where or when to bring a production to a close (compare
  2261.    {fencepost error}).  One may say `there is a banana problem' of an
  2262.    algorithm with poorly defined or incorrect termination conditions,
  2263.    or in discussing the evolution of a design that may be succumbing
  2264.    to featuritis (see also {creeping elegance}, {creeping
  2265.    featuritis}).  See item 176 under {HAKMEM}, which describes a
  2266.    banana problem in a {Dissociated Press} implementation.  Also,
  2267.    see {one-banana problem} for a superficially similar but
  2268.    unrelated usage.
  2269.  
  2270. :bandwidth: n. 1. Used by hackers (in a generalization of its
  2271.    technical meaning) as the volume of information per unit time that a
  2272.    computer, person, or transmission medium can handle.  "Those are
  2273.    amazing graphics, but I missed some of the detail --- not enough
  2274.    bandwidth, I guess."  Compare {low-bandwidth}.  2. Attention
  2275.    span.  3. On {USENET}, a measure of network capacity that is
  2276.    often wasted by people complaining about how items posted by others
  2277.    are a waste of bandwidth.
  2278.  
  2279. :bang: 1. n. Common spoken name for `!' (ASCII 0100001),
  2280.    especially when used in pronouncing a {bang path} in spoken
  2281.    hackish.  In {elder days} this was considered a CMUish usage,
  2282.    with MIT and Stanford hackers preferring {excl} or {shriek};
  2283.    but the spread of UNIX has carried `bang' with it (esp. via the
  2284.    term {bang path}) and it is now certainly the most common spoken
  2285.    name for `!'.  Note that it is used exclusively for
  2286.    non-emphatic written `!'; one would not say "Congratulations
  2287.    bang" (except possibly for humorous purposes), but if one wanted
  2288.    to specify the exact characters `foo!' one would speak "Eff oh oh
  2289.    bang".  See {shriek}, {{ASCII}}.  2. interj. An exclamation
  2290.    signifying roughly "I have achieved enlightenment!", or "The
  2291.    dynamite has cleared out my brain!"  Often used to acknowledge
  2292.    that one has perpetrated a {thinko} immediately after one has
  2293.    been called on it.
  2294.  
  2295. :bang on: vt. To stress-test a piece of hardware or software: "I
  2296.    banged on the new version of the simulator all day yesterday and it
  2297.    didn't crash once.  I guess it is ready for release."  The term
  2298.    {pound on} is synonymous.
  2299.  
  2300. :bang path: n. An old-style UUCP electronic-mail address specifying
  2301.    hops to get from some assumed-reachable location to the addressee,
  2302.    so called because each {hop} is signified by a {bang} sign.
  2303.    Thus, for example, the path ...!bigsite!foovax!barbox!me
  2304.    directs people to route their mail to machine bigsite (presumably
  2305.    a well-known location accessible to everybody) and from there
  2306.    through the machine foovax to the account of user me on
  2307.    barbox.
  2308.  
  2309.    In the bad old days of not so long ago, before autorouting mailers
  2310.    became commonplace, people often published compound bang addresses
  2311.    using the { } convention (see {glob}) to give paths from
  2312.    *several* big machines, in the hopes that one's correspondent
  2313.    might be able to get mail to one of them reliably (example:
  2314.    ...!{seismo, ut-sally, ihnp4}!rice!beta!gamma!me).  Bang paths
  2315.    of 8 to 10 hops were not uncommon in 1981.  Late-night dial-up
  2316.    UUCP links would cause week-long transmission times.  Bang paths
  2317.    were often selected by both transmission time and reliability, as
  2318.    messages would often get lost.  See {{Internet address}},
  2319.    {network, the}, and {sitename}.
  2320.  
  2321. :banner: n. 1. The title page added to printouts by most print
  2322.    spoolers (see {spool}).  Typically includes user or account ID
  2323.    information in very large character-graphics capitals.  Also called
  2324.    a `burst page', because it indicates where to burst (tear apart)
  2325.    fanfold paper to separate one user's printout from the next.  2. A
  2326.    similar printout generated (typically on multiple pages of fan-fold
  2327.    paper) from user-specified text, e.g., by a program such as UNIX's
  2328.    `banner({1,6})'.  3. On interactive software, a first screen
  2329.    containing a logo and/or author credits and/or a copyright notice.
  2330.  
  2331. :bar: /bar/ n. 1. The second {metasyntactic variable}, after {foo}
  2332.    and before {baz}.  "Suppose we have two functions: FOO and BAR.
  2333.    FOO calls BAR...."  2. Often appended to {foo} to produce
  2334.    {foobar}.
  2335.  
  2336. :bare metal: n. 1. New computer hardware, unadorned with such
  2337.    snares and delusions as an {operating system}, an {HLL}, or
  2338.    even assembler.  Commonly used in the phrase `programming on the
  2339.    bare metal', which refers to the arduous work of {bit bashing}
  2340.    needed to create these basic tools for a new machine.  Real
  2341.    bare-metal programming involves things like building boot proms and
  2342.    BIOS chips, implementing basic monitors used to test device
  2343.    drivers, and writing the assemblers that will be used to write the
  2344.    compiler back ends that will give the new machine a real
  2345.    development environment.  2. `Programming on the bare metal' is
  2346.    also used to describe a style of {hand-hacking} that relies on
  2347.    bit-level peculiarities of a particular hardware design, esp.
  2348.    tricks for speed and space optimization that rely on crocks such as
  2349.    overlapping instructions (or, as in the famous case described in
  2350.    {The Story of Mel, a Real Programmer} (in {Appendix A}),
  2351.    interleaving of opcodes on a magnetic drum to minimize fetch delays
  2352.    due to the device's rotational latency).  This sort of thing has
  2353.    become less common as the relative costs of programming time and
  2354.    machine resources have changed, but is still found in heavily
  2355.    constrained environments such as industrial embedded systems, and
  2356.    in the code of hackers who just can't let go of that low-level
  2357.    control.  See {Real Programmer}.
  2358.  
  2359.    In the world of personal computing, bare metal programming
  2360.    (especially in sense 1 but sometimes also in sense 2) is often
  2361.    considered a {Good Thing}, or at least a necessary evil
  2362.    (because these machines have often been sufficiently slow and
  2363.    poorly designed to make it necessary; see {ill-behaved}).
  2364.    There, the term usually refers to bypassing the BIOS or OS
  2365.    interface and writing the application to directly access device
  2366.    registers and machine addresses.  "To get 19.2 kilobaud on the
  2367.    serial port, you need to get down to the bare metal."  People who
  2368.    can do this sort of thing well are held in high regard.
  2369.  
  2370. :barf: /barf/ [from mainstream slang meaning `vomit']
  2371.    1. interj.  Term of disgust.  This is the closest hackish
  2372.    equivalent of the Val\-speak "gag me with a spoon". (Like,
  2373.    euwww!)  See {bletch}.  2. vi. To say "Barf!" or emit some
  2374.    similar expression of disgust.  "I showed him my latest hack and
  2375.    he barfed" means only that he complained about it, not that he
  2376.    literally vomited.  3. vi. To fail to work because of unacceptable
  2377.    input, perhaps with a suitable error message, perhaps not.
  2378.    Examples: "The division operation barfs if you try to divide by
  2379.    0."  (That is, the division operation checks for an attempt to
  2380.    divide by zero, and if one is encountered it causes the operation
  2381.    to fail in some unspecified, but generally obvious, manner.) "The
  2382.    text editor barfs if you try to read in a new file before writing
  2383.    out the old one."  See {choke}, {gag}.  In Commonwealth
  2384.    hackish, `barf' is generally replaced by `puke' or `vom'.
  2385.    {barf} is sometimes also used as a {metasyntactic variable},
  2386.    like {foo} or {bar}.
  2387.  
  2388. :barfmail: n. Multiple {bounce message}s accumulating to the
  2389.    level of serious annoyance, or worse.  The sort of thing that
  2390.    happens when an inter-network mail gateway goes down or
  2391.    wonky.
  2392.  
  2393. :barfulation: /bar`fyoo-lay'sh*n/ interj. Variation of {barf}
  2394.    used around the Stanford area.  An exclamation, expressing disgust.
  2395.    On seeing some particularly bad code one might exclaim,
  2396.    "Barfulation!  Who wrote this, Quux?"
  2397.  
  2398. :barfulous: /bar'fyoo-l*s/ adj. (alt. `barfucious',
  2399.    /bar-fyoo-sh*s/) Said of something that would make anyone barf,
  2400.    if only for esthetic reasons.
  2401.  
  2402. :barney: n. In Commonwealth hackish, `barney' is to {fred}
  2403.    (sense #1) as {bar} is to {foo}.  That is, people who
  2404.    commonly use `fred' as their first metasyntactic variable will
  2405.    often use `barney' second.  The reference is, of course, to Fred
  2406.    Flintstone and Barney Rubble in the Flintstones cartoons.
  2407.  
  2408. :baroque: adj. Feature-encrusted; complex; gaudy; verging on
  2409.    excessive.  Said of hardware or (esp.) software designs, this has
  2410.    many of the connotations of {elephantine} or {monstrosity} but is
  2411.    less extreme and not pejorative in itself.  "Metafont even has 
  2412.    features to introduce random variations to its letterform output.
  2413.    Now *that* is baroque!"  See also {rococo}.
  2414.  
  2415. :BASIC: [acronym, from Beginner's All-purpose Symbolic Instruction
  2416.    Code] n. A programming language, originally designed for
  2417.    Dartmouth's experimental timesharing system in the early 1960s,
  2418.    which has since become the leading cause of brain-damage in
  2419.    proto-hackers.  This is another case (like {Pascal}) of the
  2420.    cascading lossage that happens when a language deliberately
  2421.    designed as an educational toy gets taken too seriously.  A novice
  2422.    can write short BASIC programs (on the order of 10--20 lines) very
  2423.    easily; writing anything longer is (a) very painful, and (b)
  2424.    encourages bad habits that will make it harder to use more powerful
  2425.    languages well.  This wouldn't be so bad if historical accidents
  2426.    hadn't made BASIC so common on low-end micros.  As it is, it ruins
  2427.    thousands of potential wizards a year.
  2428.  
  2429. :batch: adj. 1. Non-interactive.  Hackers use this somewhat more
  2430.    loosely than the traditional technical definitions justify; in
  2431.    particular, switches on a normally interactive program that prepare
  2432.    it to receive non-interactive command input are often referred to
  2433.    as `batch mode' switches.  A `batch file' is a series of
  2434.    instructions written to be handed to an interactive program running
  2435.    in batch mode.  2. Performance of dreary tasks all at one sitting.
  2436.    "I finally sat down in batch mode and wrote out checks for all
  2437.    those bills; I guess they'll turn the electricity back on next
  2438.    week..." 3. `batching up': Accumulation of a number of small
  2439.    tasks that can be lumped together for greater efficiency.  "I'm
  2440.    batching up those letters to send sometime" "I'm batching up
  2441.    bottles to take to the recycling center."
  2442.  
  2443. :bathtub curve: n. Common term for the curve (resembling an
  2444.    end-to-end section of one of those claw-footed antique bathtubs)
  2445.    that describes the expected failure rate of electronics with time:
  2446.    initially high, dropping to near 0 for most of the system's
  2447.    lifetime, then rising again as it `tires out'.  See also {burn-in
  2448.    period}, {infant mortality}.
  2449.  
  2450. :baud: /bawd/ [simplified from its technical meaning] n. Bits per
  2451.    second.  Hence kilobaud or Kbaud, thousands of bits per second.
  2452.    The technical meaning is `level transitions per second'; this
  2453.    coincides with bps only for two-level modulation with no framing or
  2454.    stop bits.  Most hackers are aware of these nuances but blithely
  2455.    ignore them.
  2456.  
  2457.    Historical note: `baud' was originally a unit of telegraph signalling
  2458.    speed, set at one pulse per second.  It was proposed at the
  2459.    International Telegraph Conference of 1927, and named after J.M.E.
  2460.    Baudot (1845--1903), the French engineer who constructed the first
  2461.    successful teleprinter.
  2462.  
  2463. :baud barf: /bawd barf/ n. The garbage one gets on the monitor
  2464.    when using a modem connection with some protocol setting (esp.
  2465.    line speed) incorrect, or when someone picks up a voice extension
  2466.    on the same line, or when really bad line noise disrupts the
  2467.    connection.  Baud barf is not completely {random}, by the way;
  2468.    hackers with a lot of serial-line experience can usually tell
  2469.    whether the device at the other end is expecting a higher or lower
  2470.    speed than the terminal is set to.  *Really* experienced ones
  2471.    can identify particular speeds.
  2472.  
  2473. :baz: /baz/ n. 1. The third {metasyntactic variable} "Suppose we
  2474.    have three functions: FOO, BAR, and BAZ.  FOO calls BAR, which
  2475.    calls BAZ...." (See also {fum}) 2. interj. A term of mild
  2476.    annoyance.  In this usage the term is often drawn out for 2 or 3
  2477.    seconds, producing an effect not unlike the bleating of a sheep;
  2478.    /baaaaaaz/.  3. Occasionally appended to {foo} to produce
  2479.    `foobaz'.
  2480.  
  2481.    Earlier versions of this lexicon derived `baz' as a Stanford
  2482.    corruption of {bar}.  However, Pete Samson (compiler of the
  2483.    {TMRC} lexicon) reports it was already current when he joined TMRC
  2484.    in 1958.  He says "It came from `Pogo'.  Albert the Alligator,
  2485.    when vexed or outraged, would shout `Bazz Fazz!' or `Rowrbazzle!'
  2486.    The club layout was said to model the (mythical) New England
  2487.    counties of Rowrfolk and Bassex (Rowrbazzle mingled with
  2488.    (Norfolk/Suffolk/Middlesex/Essex)."
  2489.  
  2490. :bboard: /bee'bord/ [contraction of `bulletin board'] n.
  2491.    1. Any electronic bulletin board; esp. used of {BBS} systems
  2492.    running on personal micros, less frequently of a USENET
  2493.    {newsgroup} (in fact, use of this term for a newsgroup generally
  2494.    marks one either as a {newbie} fresh in from the BBS world or as
  2495.    a real old-timer predating USENET).  2. At CMU and other colleges
  2496.    with similar facilities, refers to campus-wide electronic bulletin
  2497.    boards.  3. The term `physical bboard' is sometimes used to refer
  2498.    to a old-fashioned, non-electronic cork-and-thumbtack memo board.
  2499.    At CMU, it refers to a particular one outside the CS Lounge.
  2500.  
  2501.    In either of senses 1 or 2, the term is usually prefixed by the
  2502.    name of the intended board (`the Moonlight Casino bboard' or
  2503.    `market bboard'); however, if the context is clear, the better-read
  2504.    bboards may be referred to by name alone, as in (at CMU) "Don't
  2505.    post for-sale ads on general".
  2506.  
  2507. :BBS: /B-B-S/ [abbreviation, `Bulletin Board System'] n. An electronic
  2508.    bulletin board system; that is, a message database where people can
  2509.    log in and leave broadcast messages for others grouped (typically)
  2510.    into {topic group}s.  Thousands of local BBS systems are in
  2511.    operation throughout the U.S., typically run by amateurs for fun
  2512.    out of their homes on MS-DOS boxes with a single modem line each.
  2513.    Fans of USENET and Internet or the big commercial timesharing
  2514.    bboards such as CompuServe and GEnie tend to consider local BBSes
  2515.    the low-rent district of the hacker culture, but they serve a
  2516.    valuable function by knitting together lots of hackers and users in
  2517.    the personal-micro world who would otherwise be unable to exchange
  2518.    code at all.  See also {bboard}.
  2519.  
  2520. :beam: [from Star Trek Classic's "Beam me up, Scotty!"] vt. To
  2521.    transfer {softcopy} of a file electronically; most often in
  2522.    combining forms such as `beam me a copy' or `beam that over to
  2523.    his site'.  Compare {blast}, {snarf}, {BLT}.
  2524.  
  2525. :beanie key: [Mac users] n. See {command key}.
  2526.  
  2527. :beep: n.,v. Syn. {feep}.  This term seems to be preferred among micro
  2528.    hobbyists.
  2529.  
  2530. :beige toaster: n. A Macintosh. See {toaster}; compare
  2531.    {Macintrash}, {maggotbox}.
  2532.  
  2533. :bells and whistles: [by analogy with the toyboxes on theater
  2534.    organs] n. Features added to a program or system to make it more
  2535.    {flavorful} from a hacker's point of view, without necessarily
  2536.    adding to its utility for its primary function.  Distinguished from
  2537.    {chrome}, which is intended to attract users.  "Now that we've
  2538.    got the basic program working, let's go back and add some bells and
  2539.    whistles."  No one seems to know what distinguishes a bell from a
  2540.    whistle.
  2541.  
  2542. :bells, whistles, and gongs: n. A standard elaborated form of
  2543.    {bells and whistles}; typically said with a pronounced and ironic
  2544.    accent on the `gongs'.
  2545.  
  2546. :benchmark: [techspeak] n. An inaccurate measure of computer
  2547.    performance.  "In the computer industry, there are three kinds of
  2548.    lies: lies, damn lies, and benchmarks."  Well-known ones include
  2549.    Whetstone, Dhrystone, Rhealstone (see {h}), the Gabriel LISP
  2550.    benchmarks (see {gabriel}), the SPECmark suite, and LINPACK.  See
  2551.    also {machoflops}, {MIPS}, {smoke and mirrors}.
  2552.  
  2553. :Berkeley Quality Software: adj. (often abbreviated `BQS') Term used
  2554.    in a pejorative sense to refer to software that was apparently
  2555.    created by rather spaced-out hackers late at night to solve some
  2556.    unique problem.  It usually has nonexistent, incomplete, or
  2557.    incorrect documentation, has been tested on at least two examples,
  2558.    and core dumps when anyone else attempts to use it.  This term was
  2559.    frequently applied to early versions of the `dbx(1)' debugger.
  2560.    See also {Berzerkeley}.
  2561.  
  2562.    Note to British and Commonwealth readers: that's /berk'lee/, not
  2563.    /bark'lee/ as in British Received Pronunciation.
  2564.  
  2565. :berklix: /berk'liks/ n.,adj. [contraction of `Berkeley UNIX'] See
  2566.    {BSD}.  Not used at Berkeley itself.  May be more common among
  2567.    {suit}s attempting to sound like cognoscenti than among hackers,
  2568.    who usually just say `BSD'.
  2569.  
  2570. :Berzerkeley: /b*r-zer'klee/ [from `berserk', via the name of a
  2571.    now-deceased record label] n. Humorous distortion of `Berkeley'
  2572.    used esp. to refer to the practices or products of the
  2573.    {BSD} UNIX hackers.  See {software bloat}, {Missed'em-five},
  2574.    {Berkeley Quality Software}.
  2575.  
  2576.    Mainstream use of this term in reference to the cultural and
  2577.    political peculiarities of UC Berkeley as a whole has been reported
  2578.    from as far back as the 1960s.
  2579.  
  2580. :beta: /bay't*/, /be't*/ or (Commonwealth) /bee't*/ n.
  2581.    1. Mostly working, but still under test; usu. used with `in': `in
  2582.    beta'.  In the {Real World}, systems (hardware or software)
  2583.    software often go through two stages of release testing: Alpha
  2584.    (in-house) and Beta (out-house?).  Beta releases are generally made
  2585.    to a small number of lucky (or unlucky), trusted customers.
  2586.    2. Anything that is new and experimental.  "His girlfriend is in
  2587.    beta" means that he is still testing for compatibility and
  2588.    reserving judgment.  3. Flaky; dubious; suspect (since beta
  2589.    software is notoriously buggy).
  2590.  
  2591.    Historical note: More formally, to beta-test is to test a
  2592.    pre-release (potentially unreliable) version of a piece of software
  2593.    by making it available to selected customers and users.  This term
  2594.    derives from early 1960s terminology for product cycle checkpoints,
  2595.    first used at IBM but later standard throughout the industry.
  2596.    `Alpha Test' was the unit, module, or component test phase; `Beta
  2597.    Test' was initial system test.  These themselves came from earlier
  2598.    A- and B-tests for hardware.  The A-test was a feasibility and
  2599.    manufacturability evaluation done before any commitment to design
  2600.    and development.  The B-test was a demonstration that the
  2601.    engineering model functioned as specified.  The C-test
  2602.    (corresponding to today's beta) was the B-test performed on early
  2603.    samples of the production design.
  2604.  
  2605. :BFI: /B-F-I/ n. See {brute force and ignorance}.  Also
  2606.    encountered in the variants `BFMI', `brute force and
  2607.    *massive* ignorance' and `BFBI' `brute force and bloody
  2608.    ignorance'.
  2609.  
  2610. :bible: n. 1. One of a small number of fundamental source books
  2611.    such as {Knuth} and {K&R}.  2. The most detailed and
  2612.    authoritative reference for a particular language, operating
  2613.    system, or other complex software system.
  2614.  
  2615. :BiCapitalization: n. The act said to have been performed on
  2616.    trademarks (such as {PostScript}, NeXT, {NeWS}, VisiCalc,
  2617.    FrameMaker, TK!solver, EasyWriter) that have been raised above the
  2618.    ruck of common coinage by nonstandard capitalization.  Too many
  2619.    {marketroid} types think this sort of thing is really cute, even
  2620.    the 2,317th time they do it.  Compare {studlycaps}.
  2621.  
  2622. :BIFF: /bif/ [USENET] n. The most famous {pseudo}, and the
  2623.    prototypical {newbie}.  Articles from BIFF are characterized by
  2624.    all uppercase letters sprinkled liberally with bangs, typos,
  2625.    `cute' misspellings (EVRY BUDY LUVS GOOD OLD BIFF CUZ HE"S A
  2626.    K00L DOOD AN HE RITES REEL AWESUM THINGZ IN CAPITULL LETTRS LIKE
  2627.    THIS!!!), use (and often misuse) of fragments of {talk mode}
  2628.    abbreviations, a long {sig block} (sometimes even a {doubled
  2629.    sig}), and unbounded naivet'e.  BIFF posts articles using his
  2630.    elder brother's VIC-20.  BIFF's location is a mystery, as his
  2631.    articles appear to come from a variety of sites.  However,
  2632.    {BITNET} seems to be the most frequent origin.  The theory that
  2633.    BIFF is a denizen of BITNET is supported by BIFF's (unfortunately
  2634.    invalid) electronic mail address: BIFF@BIT.NET.
  2635.  
  2636.    [1993: Now It Can Be Told!  My spies inform me that BIFF was
  2637.    originally created by Joe Talmadge <jat@cup.hp.com>, also the
  2638.    author of the infamous and much-plagiarized "Flamer's Bible".
  2639.    The BIFF filter he wrote was later passed to Richard Sexton, who
  2640.    posted BIFFisms much more widely.  Versions have since been posted
  2641.    for the amusement of the net at large. --- ESR]
  2642.  
  2643. :biff: /bif/ vt. To notify someone of incoming mail.  From the
  2644.    BSD utility `biff(1)', which was in turn named after a
  2645.    friendly golden Labrador who used to chase frisbees in the halls at
  2646.    UCB while 4.2BSD was in development (it had a well-known habit of
  2647.    barking whenever the mailman came).  No relation to
  2648.    {BIFF}.
  2649.  
  2650. :Big Gray Wall: n. What faces a {VMS} user searching for
  2651.    documentation.  A full VMS kit comes on a pallet, the documentation
  2652.    taking up around 15 feet of shelf space before the addition of
  2653.    layered products such as compilers, databases, multivendor
  2654.    networking, and programming tools.  Recent (since VMS version 5)
  2655.    DEC documentation comes with gray binders; under VMS version 4 the
  2656.    binders were orange (`big orange wall'), and under version 3 they
  2657.    were blue.  See {VMS}.  Often contracted to `Gray Wall'.
  2658.  
  2659. :big iron: n. Large, expensive, ultra-fast computers.  Used generally
  2660.    of {number-crunching} supercomputers such as Crays, but can include
  2661.    more conventional big commercial IBMish mainframes.  Term of
  2662.    approval; compare {heavy metal}, oppose {dinosaur}.
  2663.  
  2664. :Big Red Switch: [IBM] n. The power switch on a computer, esp. the
  2665.    `Emergency Pull' switch on an IBM {mainframe} or the power switch
  2666.    on an IBM PC where it really is large and red.  "This !@%$%
  2667.    {bitty box} is hung again; time to hit the Big Red Switch."
  2668.    Sources at IBM report that, in tune with the company's passion for
  2669.    {TLA}s, this is often abbreviated as `BRS' (this has also
  2670.    become established on FidoNet and in the PC {clone} world).  It
  2671.    is alleged that the emergency pull switch on an IBM 360/91 actually
  2672.    fired a non-conducting bolt into the main power feed; the BRSes on
  2673.    more recent mainframes physically drop a block into place so that
  2674.    they can't be pushed back in.  People get fired for pulling them,
  2675.    especially inappropriately (see also {molly-guard}).  Compare
  2676.    {power cycle}, {three-finger salute}, {120 reset}; see
  2677.    also {scram switch}.
  2678.  
  2679. :Big Room, the: n. The extremely large room with the blue ceiling
  2680.    and intensely bright light (during the day) or black ceiling with
  2681.    lots of tiny night-lights (during the night) found outside all
  2682.    computer installations.  "He can't come to the phone right now,
  2683.    he's somewhere out in the Big Room."
  2684.  
  2685. :big win: n. Serendipity.  "Yes, those two physicists discovered
  2686.    high-temperature superconductivity in a batch of ceramic that had
  2687.    been prepared incorrectly according to their experimental schedule.
  2688.    Small mistake; big win!" See {win big}.
  2689.  
  2690. :big-endian: [From Swift's `Gulliver's Travels' via the famous
  2691.    paper `On Holy Wars and a Plea for Peace' by Danny Cohen,
  2692.    USC/ISI IEN 137, dated April 1, 1980] adj. 1. Describes a computer
  2693.    architecture in which, within a given multi-byte numeric
  2694.    representation, the most significant byte has the lowest address
  2695.    (the word is stored `big-end-first').  Most processors,
  2696.    including the IBM 370 family, the {PDP-10}, the Motorola
  2697.    microprocessor families, and most of the various RISC designs
  2698.    current in mid-1993, are big-endian.  See {little-endian},
  2699.    {middle-endian}, {NUXI problem}, {swab}.  2. An
  2700.    {{Internet address}} the wrong way round.  Most of the world
  2701.    follows the Internet standard and writes email addresses starting
  2702.    with the name of the computer and ending up with the name of the
  2703.    country.  In the U.K.  the Joint Networking Team had decided to do
  2704.    it the other way round before the Internet domain standard was
  2705.    established; e.g., me@uk.ac.wigan.cs.  Most gateway sites have
  2706.    {ad-hockery} in their mailers to handle this, but can still be
  2707.    confused.  In particular, the address above could be in the
  2708.    U.K. (domain uk) or Czechoslovakia (domain cs).
  2709.  
  2710. :bignum: /big'nuhm/ [orig. from MIT MacLISP] n. 1. [techspeak] A
  2711.    multiple-precision computer representation for very large
  2712.    integers.  2. More generally, any very large number.  "Have you ever
  2713.    looked at the United States Budget?  There's bignums for you!"
  2714.    3. [Stanford] In backgammon, large numbers on the dice especially a
  2715.    roll of double fives or double sixes (compare {moby}, sense 4).
  2716.    See also {El Camino Bignum}.
  2717.  
  2718.    Sense 1 may require some explanation.  Most computer languages
  2719.    provide a kind of data called `integer', but such computer
  2720.    integers are usually very limited in size; usually they must be
  2721.    smaller than than 2^(31) (2,147,483,648) or (on a
  2722.    {bitty box}) 2^(15) (32,768).  If you want to work
  2723.    with numbers larger than that, you have to use floating-point
  2724.    numbers, which are usually accurate to only six or seven decimal
  2725.    places.  Computer languages that provide bignums can perform exact
  2726.    calculations on very large numbers, such as 1000! (the factorial
  2727.    of 1000, which is 1000 times 999 times 998 times ... times 2
  2728.    times 1).  For example, this value for 1000!  was computed by the
  2729.    MacLISP system using bignums:
  2730.  
  2731.      40238726007709377354370243392300398571937486421071
  2732.      46325437999104299385123986290205920442084869694048
  2733.      00479988610197196058631666872994808558901323829669
  2734.      94459099742450408707375991882362772718873251977950
  2735.      59509952761208749754624970436014182780946464962910
  2736.      56393887437886487337119181045825783647849977012476
  2737.      63288983595573543251318532395846307555740911426241
  2738.      74743493475534286465766116677973966688202912073791
  2739.      43853719588249808126867838374559731746136085379534
  2740.      52422158659320192809087829730843139284440328123155
  2741.      86110369768013573042161687476096758713483120254785
  2742.      89320767169132448426236131412508780208000261683151
  2743.      02734182797770478463586817016436502415369139828126
  2744.      48102130927612448963599287051149649754199093422215
  2745.      66832572080821333186116811553615836546984046708975
  2746.      60290095053761647584772842188967964624494516076535
  2747.      34081989013854424879849599533191017233555566021394
  2748.      50399736280750137837615307127761926849034352625200
  2749.      01588853514733161170210396817592151090778801939317
  2750.      81141945452572238655414610628921879602238389714760
  2751.      88506276862967146674697562911234082439208160153780
  2752.      88989396451826324367161676217916890977991190375403
  2753.      12746222899880051954444142820121873617459926429565
  2754.      81746628302955570299024324153181617210465832036786
  2755.      90611726015878352075151628422554026517048330422614
  2756.      39742869330616908979684825901254583271682264580665
  2757.      26769958652682272807075781391858178889652208164348
  2758.      34482599326604336766017699961283186078838615027946
  2759.      59551311565520360939881806121385586003014356945272
  2760.      24206344631797460594682573103790084024432438465657
  2761.      24501440282188525247093519062092902313649327349756
  2762.      55139587205596542287497740114133469627154228458623
  2763.      77387538230483865688976461927383814900140767310446
  2764.      64025989949022222176590433990188601856652648506179
  2765.      97023561938970178600408118897299183110211712298459
  2766.      01641921068884387121855646124960798722908519296819
  2767.      37238864261483965738229112312502418664935314397013
  2768.      74285319266498753372189406942814341185201580141233
  2769.      44828015051399694290153483077644569099073152433278
  2770.      28826986460278986432113908350621709500259738986355
  2771.      42771967428222487575867657523442202075736305694988
  2772.      25087968928162753848863396909959826280956121450994
  2773.      87170124451646126037902930912088908694202851064018
  2774.      21543994571568059418727489980942547421735824010636
  2775.      77404595741785160829230135358081840096996372524230
  2776.      56085590370062427124341690900415369010593398383577
  2777.      79394109700277534720000000000000000000000000000000
  2778.      00000000000000000000000000000000000000000000000000
  2779.      00000000000000000000000000000000000000000000000000
  2780.      00000000000000000000000000000000000000000000000000
  2781.      00000000000000000000000000000000000000000000000000
  2782.      000000000000000000.
  2783.  
  2784. :bigot: n. A person who is religiously attached to a particular
  2785.    computer, language, operating system, editor, or other tool (see
  2786.    {religious issues}).  Usually found with a specifier; thus,
  2787.    `cray bigot', `ITS bigot', `APL bigot', `VMS bigot',
  2788.    `Berkeley bigot'.  Real bigots can be distinguished from mere
  2789.    partisans or zealots by the fact that they refuse to learn
  2790.    alternatives even when the march of time and/or technology is
  2791.    threatening to obsolete the favored tool.  It is truly said "You
  2792.    can tell a bigot, but you can't tell him much."  Compare
  2793.    {weenie}.
  2794.  
  2795. :bit: [from the mainstream meaning and `Binary digIT'] n.
  2796.    1. [techspeak] The unit of information; the amount of information
  2797.    obtained by asking a yes-or-no question for which the two outcomes
  2798.    are equally probable.  2. [techspeak] A computational quantity that
  2799.    can take on one of two values, such as true and false or 0 and 1.
  2800.    3. A mental flag: a reminder that something should be done
  2801.    eventually.  "I have a bit set for you."  (I haven't seen you for
  2802.    a while, and I'm supposed to tell or ask you something.)  4. More
  2803.    generally, a (possibly incorrect) mental state of belief.  "I have
  2804.    a bit set that says that you were the last guy to hack on EMACS."
  2805.    (Meaning "I think you were the last guy to hack on EMACS, and what
  2806.    I am about to say is predicated on this, so please stop me if this
  2807.    isn't true.")
  2808.  
  2809.    "I just need one bit from you" is a polite way of indicating that
  2810.    you intend only a short interruption for a question that can
  2811.    presumably be answered yes or no.
  2812.  
  2813.    A bit is said to be `set' if its value is true or 1, and
  2814.    `reset' or `clear' if its value is false or 0.  One speaks of
  2815.    setting and clearing bits.  To {toggle} or `invert' a bit is
  2816.    to change it, either from 0 to 1 or from 1 to 0.  See also
  2817.    {flag}, {trit}, {mode bit}.
  2818.  
  2819.    The term `bit' first appeared in print in the computer-science
  2820.    sense in 1949, and seems to have been coined by early computer
  2821.    scientist John Tukey.  Tukey records that it evolved over a lunch
  2822.    table as a handier alternative to `bigit' or `binit'.
  2823.  
  2824. :bit bang: n. Transmission of data on a serial line, when
  2825.    accomplished by rapidly tweaking a single output bit, in software,
  2826.    at the appropriate times.  The technique is a simple loop with
  2827.    eight OUT and SHIFT instruction pairs for each byte.  Input is more
  2828.    interesting.  And full duplex (doing input and output at the same
  2829.    time) is one way to separate the real hackers from the
  2830.    {wannabee}s.
  2831.  
  2832.    Bit bang was used on certain early models of Prime computers,
  2833.    presumably when UARTs were too expensive, and on archaic Z80 micros
  2834.    with a Zilog PIO but no SIO.  In an interesting instance of the
  2835.    {cycle of reincarnation}, this technique is now (1991) coming
  2836.    back into use on some RISC architectures because it consumes such
  2837.    an infinitesimal part of the processor that it actually makes sense
  2838.    not to have a UART.
  2839.  
  2840. :bit bashing: n. (alt. `bit diddling' or {bit twiddling}) Term
  2841.    used to describe any of several kinds of low-level programming
  2842.    characterized by manipulation of {bit}, {flag}, {nybble},
  2843.    and other smaller-than-character-sized pieces of data; these
  2844.    include low-level device control, encryption algorithms, checksum
  2845.    and error-correcting codes, hash functions, some flavors of
  2846.    graphics programming (see {bitblt}), and assembler/compiler code
  2847.    generation.  May connote either tedium or a real technical
  2848.    challenge (more usually the former).  "The command decoding for
  2849.    the new tape driver looks pretty solid but the bit-bashing for the
  2850.    control registers still has bugs."  See also {bit bang},
  2851.    {mode bit}.
  2852.  
  2853. :bit bucket: n. 1. The universal data sink (originally, the
  2854.    mythical receptacle used to catch bits when they fall off the end
  2855.    of a register during a shift instruction).  Discarded, lost, or
  2856.    destroyed data is said to have `gone to the bit bucket'.  On
  2857.    {{UNIX}}, often used for {/dev/null}.  Sometimes amplified as
  2858.    `the Great Bit Bucket in the Sky'.  2. The place where all lost
  2859.    mail and news messages eventually go.  The selection is performed
  2860.    according to {Finagle's Law}; important mail is much more likely
  2861.    to end up in the bit bucket than junk mail, which has an almost
  2862.    100% probability of getting delivered.  Routing to the bit bucket
  2863.    is automatically performed by mail-transfer agents, news systems,
  2864.    and the lower layers of the network.  3. The ideal location for all
  2865.    unwanted mail responses: "Flames about this article to the bit
  2866.    bucket."  Such a request is guaranteed to overflow one's mailbox
  2867.    with flames.  4. Excuse for all mail that has not been sent.  "I
  2868.    mailed you those figures last week; they must have landed in the
  2869.    bit bucket."  Compare {black hole}.
  2870.  
  2871.    This term is used purely in jest.  It is based on the fanciful
  2872.    notion that bits are objects that are not destroyed but only
  2873.    misplaced.  This appears to have been a mutation of an earlier term
  2874.    `bit box', about which the same legend was current; old-time
  2875.    hackers also report that trainees used to be told that when the CPU
  2876.    stored bits into memory it was actually pulling them `out of the
  2877.    bit box'.  See also {chad box}.
  2878.  
  2879.    Another variant of this legend has it that, as a consequence of the
  2880.    `parity preservation law', the number of 1 bits that go to the bit
  2881.    bucket must equal the number of 0 bits.  Any imbalance results in
  2882.    bits filling up the bit bucket.  A qualified computer technician
  2883.    can empty a full bit bucket as part of scheduled maintenance.
  2884.  
  2885. :bit decay: n. See {bit rot}.  People with a physics background
  2886.    tend to prefer this variant for the analogy with particle decay.  See
  2887.    also {computron}, {quantum bogodynamics}.
  2888.  
  2889. :bit rot: n. Also {bit decay}.  Hypothetical disease the existence
  2890.    of which has been deduced from the observation that unused programs
  2891.    or features will often stop working after sufficient time has
  2892.    passed, even if `nothing has changed'.  The theory explains that
  2893.    bits decay as if they were radioactive.  As time passes, the
  2894.    contents of a file or the code in a program will become
  2895.    increasingly garbled.
  2896.  
  2897.    There actually are physical processes that produce such effects
  2898.    (alpha particles generated by trace radionuclides in ceramic chip
  2899.    packages, for example, can change the contents of a computer memory
  2900.    unpredictably, and various kinds of subtle media failures can
  2901.    corrupt files in mass storage), but they are quite rare (and
  2902.    computers are built with error-detecting circuitry to compensate
  2903.    for them).  The notion long favored among hackers that cosmic
  2904.    rays are among the causes of such events turns out to be a myth;
  2905.    see the {cosmic rays} entry for details.
  2906.  
  2907.    The term {software rot} is almost synonymous.  Software rot is
  2908.    the effect, bit rot the notional cause.
  2909.  
  2910. :bit twiddling: n. 1. (pejorative) An exercise in tuning (see
  2911.    {tune}) in which incredible amounts of time and effort go to
  2912.    produce little noticeable improvement, often with the result that
  2913.    the code becomes incomprehensible.  2. Aimless small
  2914.    modification to a program, esp. for some pointless goal.
  2915.    3. Approx. syn. for {bit bashing}; esp. used for the act of
  2916.    frobbing the device control register of a peripheral in an attempt
  2917.    to get it back to a known state.
  2918.  
  2919. :bit-paired keyboard: n. obs. (alt. `bit-shift keyboard') A
  2920.    non-standard keyboard layout that seems to have originated with the
  2921.    Teletype ASR-33 and remained common for several years on early
  2922.    computer equipment.  The ASR-33 was a mechanical device (see
  2923.    {EOU}), so the only way to generate the character codes from
  2924.    keystrokes was by some physical linkage.  The design of the ASR-33
  2925.    assigned each character key a basic pattern that could be modified
  2926.    by flipping bits if the SHIFT or the CTRL key was pressed.  In
  2927.    order to avoid making the thing more of a Rube Goldberg kluge than
  2928.    it already was, the design had to group characters that shared the
  2929.    same basic bit pattern on one key.
  2930.  
  2931.    Looking at the ASCII chart, we find:
  2932.  
  2933.      high  low bits
  2934.      bits  0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
  2935.       010        !    "    #    $    %    &    '    (    )
  2936.       011   0    1    2    3    4    5    6    7    8    9
  2937.  
  2938.    This is why the characters !"#$%&'() appear where they do on a
  2939.    Teletype (thankfully, they didn't use shift-0 for space).  This was
  2940.    *not* the weirdest variant of the {QWERTY} layout widely
  2941.    seen, by the way; that prize should probably go to one of several
  2942.    (differing) arrangements on IBM's even clunkier 026 and 029 card
  2943.    punches.
  2944.  
  2945.    When electronic terminals became popular, in the early 1970s, there
  2946.    was no agreement in the industry over how the keyboards should be
  2947.    laid out.  Some vendors opted to emulate the Teletype keyboard,
  2948.    while others used the flexibility of electronic circuitry to make
  2949.    their product look like an office typewriter.  These alternatives
  2950.    became known as `bit-paired' and `typewriter-paired' keyboards.  To
  2951.    a hacker, the bit-paired keyboard seemed far more logical --- and
  2952.    because most hackers in those days had never learned to touch-type,
  2953.    there was little pressure from the pioneering users to adapt
  2954.    keyboards to the typewriter standard.
  2955.  
  2956.    The doom of the bit-paired keyboard was the large-scale
  2957.    introduction of the computer terminal into the normal office
  2958.    environment, where out-and-out technophobes were expected to use
  2959.    the equipment.  The `typewriter-paired' standard became universal,
  2960.    `bit-paired' hardware was quickly junked or relegated to dusty
  2961.    corners, and both terms passed into disuse.
  2962.  
  2963. :bitblt: /bit'blit/ n. [from {BLT}, q.v.] 1. Any of a family
  2964.    of closely related algorithms for moving and copying rectangles of
  2965.    bits between main and display memory on a bit-mapped device, or
  2966.    between two areas of either main or display memory (the requirement
  2967.    to do the {Right Thing} in the case of overlapping source and
  2968.    destination rectangles is what makes BitBlt tricky).  2. Synonym
  2969.    for {blit} or {BLT}.  Both uses are borderline techspeak.
  2970.  
  2971. :BITNET: /bit'net/ [acronym: Because It's Time NETwork] n.
  2972.    Everybody's least favorite piece of the network (see {network,
  2973.    the}).  The BITNET hosts are a collection of IBM dinosaurs and
  2974.    VAXen (the latter with lobotomized comm hardware) that communicate
  2975.    using 80-character {{EBCDIC}} card images (see {eighty-column
  2976.    mind}); thus, they tend to mangle the headers and text of
  2977.    third-party traffic from the rest of the ASCII/{RFC}-822 world with
  2978.    annoying regularity.  BITNET is also notorious as the apparent home
  2979.    of {BIFF}.
  2980.  
  2981. :bits: n.pl. 1. Information.  Examples: "I need some bits about file
  2982.    formats."  ("I need to know about file formats.")  Compare {core
  2983.    dump}, sense 4.  2. Machine-readable representation of a document,
  2984.    specifically as contrasted with paper:  "I have only a photocopy
  2985.    of the Jargon File; does anyone know where I can get the bits?".
  2986.    See {softcopy}, {source of all good bits} See also {bit}.
  2987.  
  2988. :bitty box: /bit'ee boks/ n. 1. A computer sufficiently small,
  2989.    primitive, or incapable as to cause a hacker acute claustrophobia
  2990.    at the thought of developing software on or for it.  Especially
  2991.    used of small, obsolescent, single-tasking-only personal machines
  2992.    such as the Atari 800, Osborne, Sinclair, VIC-20, TRS-80, or
  2993.    IBM PC.  2. [Pejorative] More generally, the opposite of `real
  2994.    computer' (see {Get a real computer!}).  See also {mess-dos},
  2995.    {toaster}, and {toy}.
  2996.  
  2997. :bixie: /bik'see/ n. Variant {emoticon}s used on BIX (the Byte
  2998.    Information eXchange).  The {smiley} bixie is <@_@>, apparently
  2999.    intending to represent two cartoon eyes and a mouth.  A few others
  3000.    have been reported.
  3001.  
  3002. :black art: n. A collection of arcane, unpublished, and (by
  3003.    implication) mostly ad-hoc techniques developed for a particular
  3004.    application or systems area (compare {black magic}).  VLSI design
  3005.    and compiler code optimization were (in their beginnings)
  3006.    considered classic examples of black art; as theory developed they
  3007.    became {deep magic}, and once standard textbooks had been written,
  3008.    became merely {heavy wizardry}.  The huge proliferation of formal
  3009.    and informal channels for spreading around new computer-related
  3010.    technologies during the last twenty years has made both the term
  3011.    `black art' and what it describes less common than formerly.  See
  3012.    also {voodoo programming}.
  3013.  
  3014. :black hole: n. What a piece of email or netnews has fallen into if
  3015.    it disappears mysteriously between its origin and destination sites
  3016.    (that is, without returning a {bounce message}).  "I think
  3017.    there's a black hole at foovax!" conveys suspicion that site
  3018.    foovax has been dropping a lot of stuff on the floor lately
  3019.    (see {drop on the floor}).  The implied metaphor of email as
  3020.    interstellar travel is interesting in itself.  Compare {bit
  3021.    bucket}.
  3022.  
  3023. :black magic: n. A technique that works, though nobody really
  3024.    understands why.  More obscure than {voodoo programming}, which
  3025.    may be done by cookbook.  Compare also {black art}, {deep
  3026.    magic}, and {magic number} (sense 2).
  3027.  
  3028. :blargh: /blarg/ [MIT] n. The opposite of {ping}, sense 5; an
  3029.    exclamation indicating that one has absorbed or is emitting a
  3030.    quantum of unhappiness.  Less common than {ping}.
  3031.  
  3032. :blast: 1. vt.,n. Synonym for {BLT}, used esp. for large data
  3033.    sends over a network or comm line.  Opposite of {snarf}.  Usage:
  3034.    uncommon.  The variant `blat' has been reported.  2. vt.
  3035.    [HP/Apollo] Synonymous with {nuke} (sense 3).  Sometimes the
  3036.    message `Unable to kill all processes.  Blast them (y/n)?' would
  3037.    appear in the command window upon logout.
  3038.  
  3039. :blat: n. 1. Syn. {blast}, sense 1.  2. See {thud}.
  3040.  
  3041. :bletch: /blech/ [from Yiddish/German `brechen', to vomit, poss.
  3042.    via comic-strip exclamation `blech'] interj.  Term of disgust.
  3043.    Often used in "Ugh, bletch".  Compare {barf}.
  3044.  
  3045. :bletcherous: /blech'*-r*s/ adj. Disgusting in design or function;
  3046.    esthetically unappealing.  This word is seldom used of people.
  3047.    "This keyboard is bletcherous!" (Perhaps the keys don't work very
  3048.    well, or are misplaced.)  See {losing}, {cretinous},
  3049.    {bagbiter}, {bogus}, and {random}.  The term {bletcherous}
  3050.    applies to the esthetics of the thing so described; similarly for
  3051.    {cretinous}.  By contrast, something that is `losing' or
  3052.    `bagbiting' may be failing to meet objective criteria.  See also
  3053.    {bogus} and {random}, which have richer and wider shades of
  3054.    meaning than any of the above.
  3055.  
  3056. :blinkenlights: /blink'*n-li:tz/ n. Front-panel diagnostic lights
  3057.    on a computer, esp. a {dinosaur}.  Derives from the last word
  3058.    of the famous blackletter-Gothic sign in mangled pseudo-German that
  3059.    once graced about half the computer rooms in the English-speaking
  3060.    world.  One version ran in its entirety as follows:
  3061.  
  3062.                    ACHTUNG!  ALLES LOOKENSPEEPERS!  Das
  3063.      computermachine ist nicht fuer gefingerpoken und mittengrabben.
  3064.      Ist easy schnappen der springenwerk, blowenfusen und poppencorken
  3065.      mit spitzensparken.  Ist nicht fuer gewerken bei das dumpkopfen.
  3066.      Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das
  3067.      pockets muss; relaxen und watchen das blinkenlichten.
  3068.  
  3069.  
  3070.    This silliness dates back at least as far as 1959 at Stanford
  3071.    University and had already gone international by the early 1960s,
  3072.    when it was reported at London University's ATLAS computing site.
  3073.    There are several variants of it in circulation, some of which
  3074.    actually do end with the word `blinkenlights'.
  3075.  
  3076.    In an amusing example of turnabout-is-fair-play, German hackers
  3077.    have developed their own versions of the blinkenlights poster in
  3078.    fractured English, one of which is reproduced here:
  3079.  
  3080.                                ATTENTION
  3081.         This room is fullfilled mit special electronische equippment.
  3082.         Fingergrabbing and pressing the cnoeppkes from the computers is
  3083.         allowed for die experts only!  So all the "lefthanders" stay away
  3084.         and do not disturben the brainstorming von here working
  3085.         intelligencies.  Otherwise you will be out thrown and kicked
  3086.         anderswhere!  Also: please keep still and only watchen astaunished
  3087.         the blinkenlights.
  3088.  
  3089.    See also {geef}.
  3090.  
  3091. :blit: /blit/ vt. 1. To copy a large array of bits from one part
  3092.    of a computer's memory to another part, particularly when the
  3093.    memory is being used to determine what is shown on a display
  3094.    screen.  "The storage allocator picks through the table and copies
  3095.    the good parts up into high memory, and then blits it all back down
  3096.    again."  See {bitblt}, {BLT}, {dd}, {cat}, {blast},
  3097.    {snarf}.  More generally, to perform some operation (such as
  3098.    toggling) on a large array of bits while moving them.  2. Sometimes
  3099.    all-capitalized as `BLIT': an early experimental bit-mapped
  3100.    terminal designed by Rob Pike at Bell Labs, later commercialized as
  3101.    the AT&T 5620.  (The folk etymology from `Bell Labs Intelligent
  3102.    Terminal' is incorrect.  Its creators liked to claim that "Blit"
  3103.    stood for the Bacon, Lettuce, and Interactive Tomato.)
  3104.  
  3105. :blitter: /blit'r/ n. A special-purpose chip or hardware system
  3106.    built to perform {blit} operations, esp. used for fast
  3107.    implementation of bit-mapped graphics.  The Commodore Amiga and a
  3108.    few other micros have these, but in 1991 the trend is away from
  3109.    them (however, see {cycle of reincarnation}).  Syn. {raster
  3110.    blaster}.
  3111.  
  3112. :blivet: /bliv'*t/ [allegedly from a World War II military term
  3113.    meaning "ten pounds of manure in a five-pound bag"] n. 1. An
  3114.    intractable problem.  2. A crucial piece of hardware that can't be
  3115.    fixed or replaced if it breaks.  3. A tool that has been hacked
  3116.    over by so many incompetent programmers that it has become an
  3117.    unmaintainable tissue of hacks.  4. An out-of-control but
  3118.    unkillable development effort.  5. An embarrassing bug that pops up
  3119.    during a customer demo.  6. In the subjargon of computer security
  3120.    specialists, a denial-of-service attack performed by hogging
  3121.    limited resources that have no access controls (for example, shared
  3122.    spool space on a multi-user system).
  3123.  
  3124.    This term has other meanings in other technical cultures; among
  3125.    experimental physicists and hardware engineers of various kinds it
  3126.    seems to mean any random object of unknown purpose (similar to
  3127.    hackish use of {frob}).  It has also been used to describe an
  3128.    amusing trick-the-eye drawing resembling a three-pronged fork that
  3129.    appears to depict a three-dimensional object until one realizes
  3130.    that the parts fit together in an impossible way.
  3131.  
  3132. :BLOB: [acronym, Binary Large OBject] n. Used by database people to
  3133.    refer to any random large block of bits that needs to be stored in
  3134.    a database, such as a picture or sound file.  The essential point
  3135.    about a BLOB is that it's an object that cannot be interpreted
  3136.    within the database itself.
  3137.  
  3138. :block: [from process scheduling terminology in OS theory] 1. vi.
  3139.    To delay or sit idle while waiting for something.  "We're blocking
  3140.    until everyone gets here."  Compare {busy-wait}.  2. `block
  3141.    on' vt. To block, waiting for (something).  "Lunch is blocked on
  3142.    Phil's arrival."
  3143.  
  3144. :block transfer computations: [from the television series
  3145.    "Dr. Who"] n. Computations so fiendishly subtle and complex
  3146.    that they could not be performed by machines.  Used to refer to any
  3147.    task that should be expressible as an algorithm in theory, but
  3148.    isn't.
  3149.  
  3150. :Bloggs Family, the: n.  An imaginary family consisting of Fred and
  3151.    Mary Bloggs and their children.  Used as a standard example in
  3152.    knowledge representation to show the difference between extensional
  3153.    and intensional objects.  For example, every occurrence of "Fred
  3154.    Bloggs" is the same unique person, whereas occurrences of
  3155.    "person" may refer to different people.  Members of the Bloggs
  3156.    family have been known to pop up in bizarre places such as the DEC
  3157.    Telephone Directory.  Compare {Mbogo, Dr. Fred}.
  3158.  
  3159. :blow an EPROM: /bloh *n ee'prom/ v. (alt. `blast an EPROM',
  3160.    `burn an EPROM') To program a read-only memory, e.g. for use
  3161.    with an embedded system.  This term arose because the programming
  3162.    process for the Programmable Read-Only Memories (PROMs) that
  3163.    preceded present-day Erasable Programmable Read-Only Memories
  3164.    (EPROMs) involved intentionally blowing tiny electrical fuses on
  3165.    the chip.  The usage lives on (it's too vivid and expressive to
  3166.    discard) even though the write process on EPROMs is
  3167.    nondestructive.
  3168.  
  3169. :blow away: vt. To remove (files and directories) from permanent
  3170.    storage, generally by accident.  "He reformatted the wrong
  3171.    partition and blew away last night's netnews."  Oppose {nuke}.
  3172.  
  3173. :blow out: [prob. from mining and tunneling jargon] vi. Of
  3174.    software, to fail spectacularly; almost as serious as {crash and
  3175.    burn}.  See {blow past}, {blow up}, {die
  3176.    horribly}.
  3177.  
  3178. :blow past: vt. To {blow out} despite a safeguard.  "The server blew
  3179.    past the 5K reserve buffer."
  3180.  
  3181. :blow up: vi. 1. [scientific computation] To become unstable.  Suggests
  3182.    that the computation is diverging so rapidly that it will soon
  3183.    overflow or at least go {nonlinear}.  2.  Syn. {blow out}.
  3184.  
  3185. :BLT: /B-L-T/, /bl*t/ or (rarely) /belt/ n.,vt. Synonym for
  3186.    {blit}.  This is the original form of {blit} and the ancestor
  3187.    of {bitblt}.  It referred to any large bit-field copy or move
  3188.    operation (one resource-intensive memory-shuffling operation done
  3189.    on pre-paged versions of ITS, WAITS, and TOPS-10 was sardonically
  3190.    referred to as `The Big BLT').  The jargon usage has outlasted the
  3191.    {PDP-10} BLock Transfer instruction from which {BLT} derives;
  3192.    nowadays, the assembler mnemonic {BLT} almost always means
  3193.    `Branch if Less Than zero'.
  3194.  
  3195. :Blue Book: n. 1. Informal name for one of the three standard
  3196.    references on the page-layout and graphics-control language
  3197.    {{PostScript}} (`PostScript Language Tutorial and Cookbook',
  3198.    Adobe Systems, Addison-Wesley 1985, QA76.73.P67P68, ISBN
  3199.    0-201-10179-3); the other three official guides are known as the
  3200.    {Green Book}, the {Red Book}, and the {White Book} (sense
  3201.    2).  2. Informal name for one of the three standard references on
  3202.    Smalltalk: `Smalltalk-80: The Language and its
  3203.    Implementation', David Robson, Addison-Wesley 1983, QA76.8.S635G64,
  3204.    ISBN 0-201-11371-63 (this book also has green and red siblings).
  3205.    3. Any of the 1988 standards issued by the CCITT's ninth plenary
  3206.    assembly.  These include, among other things, the X.400 email spec
  3207.    and the Group 1 through 4 fax standards.  See also {{book
  3208.    titles}}.
  3209.  
  3210. :Blue Glue: [IBM] n. IBM's SNA (Systems Network Architecture), an
  3211.    incredibly {losing} and {bletcherous} communications protocol
  3212.    widely favored at commercial shops that don't know any better.  The
  3213.    official IBM definition is "that which binds blue boxes
  3214.    together."  See {fear and loathing}.  It may not be irrelevant
  3215.    that {Blue Glue} is the trade name of a 3M product that is
  3216.    commonly used to hold down the carpet squares to the removable
  3217.    panel floors common in {dinosaur pen}s.  A correspondent at
  3218.    U. Minn. reports that the CS department there has about 80 bottles
  3219.    of the stuff hanging about, so they often refer to any messy work
  3220.    to be done as `using the blue glue'.
  3221.  
  3222. :blue goo: n. Term for `police' {nanobot}s intended to prevent
  3223.    {gray goo}, denature hazardous waste, destroy pollution, put
  3224.    ozone back into the stratosphere, prevent halitosis, and promote
  3225.    truth, justice, and the American way, etc.  See
  3226.    {{nanotechnology}}.
  3227.  
  3228. :blue wire: [IBM] n. Patch wires added to circuit boards at the factory to
  3229.    correct design or fabrication problems.  These may be necessary if
  3230.    there hasn't been time to design and qualify another board version.
  3231.    Compare {purple wire}, {red wire}, {yellow wire}.
  3232.  
  3233. :blurgle: /bler'gl/ [Great Britain] n. Spoken {metasyntactic
  3234.    variable}, to indicate some text that is obvious from context, or
  3235.    which is already known. If several words are to be replaced,
  3236.    blurgle may well be doubled or trebled. "To look for something in
  3237.    several files use `grep string blurgle blurgle'."  In each case,
  3238.    "blurgle blurgle" would be understood to be replaced by the file
  3239.    you wished to search.  Compare {mumble}, sense 6.
  3240.  
  3241. :BNF: /B-N-F/ n. 1. [techspeak] Acronym for `Backus-Naur Form', a
  3242.    metasyntactic notation used to specify the syntax of programming
  3243.    languages, command sets, and the like.  Widely used for language
  3244.    descriptions but seldom documented anywhere, so that it must
  3245.    usually be learned by osmosis from other hackers.  Consider this
  3246.    BNF for a U.S. postal address:
  3247.  
  3248.       <postal-address> ::= <name-part> <street-address> <zip-part>
  3249.  
  3250.       <personal-part> ::= <name> | <initial> "."
  3251.  
  3252.       <name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
  3253.                     | <personal-part> <name-part>
  3254.  
  3255.       <street-address> ::= [<apt>] <house-num> <street-name> <EOL>
  3256.  
  3257.       <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
  3258.  
  3259.    This translates into English as: "A postal-address consists of a
  3260.    name-part, followed by a street-address part, followed by a
  3261.    zip-code part.  A personal-part consists of either a first name or
  3262.    an initial followed by a dot.  A name-part consists of either: a
  3263.    personal-part followed by a last name followed by an optional
  3264.    `jr-part' (Jr., Sr., or dynastic number) and end-of-line, or a
  3265.    personal part followed by a name part (this rule illustrates the
  3266.    use of recursion in BNFs, covering the case of people who use
  3267.    multiple first and middle names and/or initials).  A street address
  3268.    consists of an optional apartment specifier, followed by a street
  3269.    number, followed by a street name.  A zip-part consists of a
  3270.    town-name, followed by a comma, followed by a state code, followed
  3271.    by a ZIP-code followed by an end-of-line."  Note that many things
  3272.    (such as the format of a personal-part, apartment specifier, or
  3273.    ZIP-code) are left unspecified.  These are presumed to be obvious
  3274.    from context or detailed somewhere nearby.  See also {parse}.
  3275.    2. Any of a number number of variants and extensions of BNF proper,
  3276.    possibly containing some or all of the {regexp} wildcards such
  3277.    as `*' or `+'.  In fact the example above isn't the pure
  3278.    form invented for the Algol-60 report; it uses `[]', which was
  3279.    introduced a few years later in IBM's PL/I definition but is now
  3280.    universally recognized.  3. In {{science-fiction fandom}}, a
  3281.    `Big-Name Fan' (someone famous or notorious).  Years ago a fan
  3282.    started handing out black-on-green BNF buttons at SF conventions;
  3283.    this confused the hacker contingent terribly.
  3284.  
  3285. :boa: [IBM] n. Any one of the fat cables that lurk under the floor
  3286.    in a {dinosaur pen}.  Possibly so called because they display a
  3287.    ferocious life of their own when you try to lay them straight and
  3288.    flat after they have been coiled for some time.  It is rumored
  3289.    within IBM that channel cables for the 370 are limited to 200 feet
  3290.    because beyond that length the boas get dangerous --- and it is
  3291.    worth noting that one of the major cable makers uses the trademark
  3292.    `Anaconda'.
  3293.  
  3294. :board: n. 1. In-context synonym for {bboard}; sometimes used
  3295.    even for USENET newsgroups (but see usage note under {bboard},
  3296.    sense 1).  2. An electronic circuit board.
  3297.  
  3298. :boat anchor: n. 1. Like {doorstop} but more severe; implies
  3299.    that the offending hardware is irreversibly dead or useless.
  3300.    "That was a working motherboard once.  One lightning strike later,
  3301.    instant boat anchor!"  2. A person who just takes up space.
  3302.    3. (affectionate) Obsolete but still working hardware, especially
  3303.    used of an old S100-bus hobbyist system; originally a term of
  3304.    annoyance, but became more and more affectionate as the hardware
  3305.    became more and more obsolete.
  3306.  
  3307. :BOF: /B-O-F/ or /bof/ n. Abbreviation for the phrase "Birds
  3308.    Of a Feather" (flocking together), an informal discussion group
  3309.    and/or bull session scheduled on a conference program.  It is not
  3310.    clear where or when this term originated, but it is now associated
  3311.    with the USENIX conferences for UNIX techies and was already
  3312.    established there by 1984.  It was used earlier than that at DECUS
  3313.    conferences and is reported to have been common at SHARE meetings
  3314.    as far back as the early 1960s.
  3315.  
  3316. :bogo-sort: /boh`goh-sort'/ n. (var. `stupid-sort') The
  3317.    archetypical perversely awful algorithm (as opposed to {bubble
  3318.    sort}, which is merely the generic *bad* algorithm).
  3319.    Bogo-sort is equivalent to repeatedly throwing a deck of cards in
  3320.    the air, picking them up at random, and then testing whether they
  3321.    are in order.  It serves as a sort of canonical example of
  3322.    awfulness.  Looking at a program and seeing a dumb algorithm, one
  3323.    might say "Oh, I see, this program uses bogo-sort."  Compare
  3324.    {bogus}, {brute force}, {Lasherism}.
  3325.  
  3326. :bogometer: /boh-gom'-*t-er/ n. A notional instrument for
  3327.    measuring {bogosity}.  Compare the `wankometer' described in
  3328.    the {wank} entry; see also {bogus}.
  3329.  
  3330. :bogon: /boh'gon/ [by analogy with proton/electron/neutron, but
  3331.    doubtless reinforced after 1980 by the similarity to Douglas
  3332.    Adams's `Vogons'; see the Bibliography in {Appendix C}] n.
  3333.    1. The elementary particle of bogosity (see {quantum
  3334.    bogodynamics}).  For instance, "the Ethernet is emitting bogons
  3335.    again" means that it is broken or acting in an erratic or bogus
  3336.    fashion.  2. A query packet sent from a TCP/IP domain resolver to a
  3337.    root server, having the reply bit set instead of the query bit.
  3338.    3. Any bogus or incorrectly formed packet sent on a network.  4. By
  3339.    synecdoche, used to refer to any bogus thing, as in "I'd like to
  3340.    go to lunch with you but I've got to go to the weekly staff
  3341.    bogon".  5. A person who is bogus or who says bogus things.  This
  3342.    was historically the original usage, but has been overtaken by its
  3343.    derivative senses 1--4.  See also {bogosity}, {bogus};
  3344.    compare {psyton}, {fat electrons}, {magic smoke}.
  3345.  
  3346.    The bogon has become the type case for a whole bestiary of nonce
  3347.    particle names, including the `clutron' or `cluon' (indivisible
  3348.    particle of cluefulness, obviously the antiparticle of the bogon)
  3349.    and the futon (elementary particle of {randomness}).  These are
  3350.    not so much live usages in themselves as examples of a live
  3351.    meta-usage: that is, it has become a standard joke or linguistic
  3352.    maneuver to "explain" otherwise mysterious circumstances by inventing
  3353.    nonce particle names.  And these imply nonce particle theories, with
  3354.    all their dignity or lack thereof (we might note parenthetically that
  3355.    this is a generalization from "(bogus particle) theories" to "bogus
  3356.    (particle theories)"!).  Perhaps such particles are the modern-day
  3357.    equivalents of trolls and wood-nymphs as standard starting-points
  3358.    around which to construct explanatory myths.  Of course, playing on
  3359.    an existing word (as in the `futon') yields additional flavor.
  3360.    Compare {magic smoke}.
  3361.  
  3362. :bogon filter: /boh'gon fil'tr/ n. Any device, software or hardware,
  3363.    that limits or suppresses the flow and/or emission of bogons.
  3364.    "Engineering hacked a bogon filter between the Cray and
  3365.    the VAXen, and now we're getting fewer dropped packets."  See
  3366.    also {bogosity}, {bogus}.
  3367.  
  3368. :bogon flux: /boh'gon fluhks/ n. A measure of a supposed field of
  3369.    {bogosity} emitted by a speaker, measured by a {bogometer};
  3370.    as a speaker starts to wander into increasing bogosity a listener
  3371.    might say "Warning, warning, bogon flux is rising".  See
  3372.    {quantum bogodynamics}.
  3373.  
  3374. :bogosity: /boh-go's*-tee/ n. 1. The degree to which something is
  3375.    {bogus}.  At CMU, bogosity is measured with a {bogometer}; in
  3376.    a seminar, when a speaker says something bogus, a listener might
  3377.    raise his hand and say "My bogometer just triggered".  More
  3378.    extremely, "You just pinned my bogometer" means you just said or
  3379.    did something so outrageously bogus that it is off the scale,
  3380.    pinning the bogometer needle at the highest possible reading (one
  3381.    might also say "You just redlined my bogometer").  The
  3382.    agreed-upon unit of bogosity is the microLenat /mi:k`roh-len'*t/
  3383.    (uL); the consensus is that this is the largest unit practical
  3384.    for everyday use.  2. The potential field generated by a {bogon
  3385.    flux}; see {quantum bogodynamics}.  See also {bogon flux},
  3386.    {bogon filter}, {bogus}.
  3387.  
  3388.    Historical note: The microLenat was invented as an attack against
  3389.    noted computer scientist Doug Lenat by a {tenured graduate
  3390.    student}.  Doug had failed the student on an important exam for
  3391.    giving only "AI is bogus" as his answer to the questions.  The
  3392.    slur is generally considered unmerited, but it has become a running
  3393.    gag nevertheless.  Some of Doug's friends argue that *of
  3394.    course* a microLenat is bogus, since it is only one millionth of a
  3395.    Lenat.  Others have suggested that the unit should be redesignated
  3396.    after the grad student, as the microReid.
  3397.  
  3398. :bogotify: /boh-go't*-fi:/ vt. To make or become bogus.  A
  3399.    program that has been changed so many times as to become completely
  3400.    disorganized has become bogotified.  If you tighten a nut too hard
  3401.    and strip the threads on the bolt, the bolt has become bogotified
  3402.    and you had better not use it any more.  This coinage led to the
  3403.    notional `autobogotiphobia' defined as `the fear of becoming
  3404.    bogotified'; but is not clear that the latter has ever been
  3405.    `live' jargon rather than a self-conscious joke in jargon about
  3406.    jargon.  See also {bogosity}, {bogus}.
  3407.  
  3408. :bogue out: /bohg owt/ vi. To become bogus, suddenly and
  3409.    unexpectedly.  "His talk was relatively sane until somebody asked
  3410.    him a trick question; then he bogued out and did nothing but
  3411.    {flame} afterwards."  See also {bogosity}, {bogus}.
  3412.  
  3413. :bogus: adj. 1. Non-functional.  "Your patches are bogus."
  3414.    2. Useless.  "OPCON is a bogus program."  3. False.  "Your
  3415.    arguments are bogus."  4. Incorrect.  "That algorithm is bogus."
  3416.    5. Unbelievable.  "You claim to have solved the halting problem
  3417.    for Turing Machines?  That's totally bogus."  6. Silly.  "Stop
  3418.    writing those bogus sagas."
  3419.  
  3420.    Astrology is bogus.  So is a bolt that is obviously about to break.
  3421.    So is someone who makes blatantly false claims to have solved a
  3422.    scientific problem.  (This word seems to have some, but not all, of
  3423.    the connotations of {random} --- mostly the negative ones.)
  3424.  
  3425.    It is claimed that `bogus' was originally used in the hackish sense
  3426.    at Princeton in the late 1960s.  It was spread to CMU and Yale by
  3427.    Michael Shamos, a migratory Princeton alumnus.  A glossary of bogus
  3428.    words was compiled at Yale when the word was first popularized (see
  3429.    {autobogotiphobia} under {bogotify}). The word spread into
  3430.    hackerdom from CMU and MIT.  By the early 1980s it was also
  3431.    current in something like the hackish sense in West Coast teen
  3432.    slang, and it had gone mainstream by 1985.  A correspondent from
  3433.    Cambridge reports, by contrast, that these uses of `bogus' grate on
  3434.    British nerves; in Britain the word means, rather specifically,
  3435.    `counterfeit', as in "a bogus 10-pound note".
  3436.  
  3437. :Bohr bug: /bohr buhg/ [from quantum physics] n. A repeatable
  3438.    {bug}; one that manifests reliably under a possibly unknown but
  3439.    well-defined set of conditions.  Antonym of {heisenbug}; see also
  3440.    {mandelbug}, {schroedinbug}.
  3441.  
  3442. :boink: /boynk/ [USENET: ascribed to the TV series "Cheers"
  3443.    and "Moonlighting"] 1. To have sex with; compare {bounce},
  3444.    sense 3. (This is mainstream slang.) In Commonwealth hackish the
  3445.    variant `bonk' is more common.  2. After the original Peter Korn
  3446.    `Boinkon' {USENET} parties, used for almost any net social
  3447.    gathering, e.g., Miniboink, a small boink held by Nancy Gillett in
  3448.    1988; Minniboink, a Boinkcon in Minnesota in 1989; Humpdayboinks,
  3449.    Wednesday get-togethers held in the San Francisco Bay Area.
  3450.    Compare {@-party}.  3. Var of `bonk'; see
  3451.    {bonk/oif}.
  3452.  
  3453. :bomb: 1. v. General synonym for {crash} (sense 1) except that
  3454.    it is not used as a noun; esp. used of software or OS failures.
  3455.    "Don't run Empire with less than 32K stack, it'll bomb."
  3456.    2. n.,v. Atari ST and Macintosh equivalents of a UNIX `panic' or
  3457.    Amiga {guru} (sense 2), in which icons of little black-powder
  3458.    bombs or mushroom clouds are displayed, indicating that the system
  3459.    has died.  On the Mac, this may be accompanied by a decimal (or
  3460.    occasionally hexadecimal) number indicating what went wrong,
  3461.    similar to the Amiga {guru meditation} number.  {{MS-DOS}}
  3462.    machines tend to get {locked up} in this situation.
  3463.  
  3464. :bondage-and-discipline language: A language (such as {{Pascal}},
  3465.    {{Ada}}, APL, or Prolog) that, though ostensibly general-purpose,
  3466.    is designed so as to enforce an author's theory of `right
  3467.    programming' even though said theory is demonstrably inadequate for
  3468.    systems hacking or even vanilla general-purpose programming.  Often
  3469.    abbreviated `B&D'; thus, one may speak of things "having the
  3470.    B&D nature".  See {{Pascal}}; oppose {languages of
  3471.    choice}.
  3472.  
  3473. :bonk/oif: /bonk/, /oyf/ interj. In the {MUD} community, it
  3474.    has become traditional to express pique or censure by `bonking'
  3475.    the offending person.  Convention holds that one should acknowledge
  3476.    a bonk by saying `oif!' and there is a myth to the effect that
  3477.    failing to do so upsets the cosmic bonk/oif balance, causing much
  3478.    trouble in the universe.  Some MUDs have implemented special
  3479.    commands for bonking and oifing.  See also {talk mode}.
  3480.  
  3481. :book titles:: There is a tradition in hackerdom of informally
  3482.    tagging important textbooks and standards documents with the
  3483.    dominant color of their covers or with some other conspicuous
  3484.    feature of the cover.  Many of these are described in this lexicon
  3485.    under their own entries. See {Aluminum Book}, {Blue Book},
  3486.    {Cinderella Book}, {Devil Book}, {Dragon Book}, {Green
  3487.    Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
  3488.    {Red Book}, {Silver Book}, {White Book}, {Wizard Book},
  3489.    {Yellow Book}, and {bible}; see also {rainbow
  3490.    series}.
  3491.  
  3492. :boot: [techspeak; from `by one's bootstraps'] v.,n. To load and
  3493.    initialize the operating system on a machine.  This usage is no
  3494.    longer jargon (having passed into techspeak) but has given rise to
  3495.    some derivatives that are still jargon.
  3496.  
  3497.    The derivative `reboot' implies that the machine hasn't been
  3498.    down for long, or that the boot is a {bounce} intended to clear
  3499.    some state of {wedgitude}.  This is sometimes used of human
  3500.    thought processes, as in the following exchange: "You've lost
  3501.    me."  "OK, reboot.  Here's the theory...."
  3502.  
  3503.    This term is also found in the variants `cold boot' (from
  3504.    power-off condition) and `warm boot' (with the CPU and all
  3505.    devices already powered up, as after a hardware reset or software
  3506.    crash).
  3507.  
  3508.    Another variant: `soft boot', reinitialization of only part of a
  3509.    system, under control of other software still running: "If
  3510.    you're running the {mess-dos} emulator, control-alt-insert will
  3511.    cause a soft-boot of the emulator, while leaving the rest of the
  3512.    system running."
  3513.  
  3514.    Opposed to this there is `hard boot', which connotes hostility
  3515.    towards or frustration with the machine being booted:  "I'll have
  3516.    to hard-boot this losing Sun."  "I recommend booting it
  3517.    hard."  One often hard-boots by performing a {power cycle}.
  3518.  
  3519.    Historical note: this term derives from `bootstrap loader', a short
  3520.    program that was read in from cards or paper tape, or toggled in
  3521.    from the front panel switches.  This program was always very short
  3522.    (great efforts were expended on making it short in order to
  3523.    minimize the labor and chance of error involved in toggling it in),
  3524.    but was just smart enough to read in a slightly more complex
  3525.    program (usually from a card or paper tape reader), to which it
  3526.    handed control; this program in turn was smart enough to read the
  3527.    application or operating system from a magnetic tape drive or disk
  3528.    drive.  Thus, in successive steps, the computer `pulled itself up
  3529.    by its bootstraps' to a useful operating state.  Nowadays the
  3530.    bootstrap is usually found in ROM or EPROM, and reads the first
  3531.    stage in from a fixed location on the disk, called the `boot
  3532.    block'.  When this program gains control, it is powerful enough to
  3533.    load the actual OS and hand control over to it.
  3534.  
  3535. :bottom feeder: n. syn. for {slopsucker}, derived from the
  3536.    fishermen's and naturalists' term for finny creatures who subsist
  3537.    on the primordial ooze.
  3538.  
  3539. :bottom-up implementation: n. Hackish opposite of the techspeak term
  3540.    `top-down design'.  It is now received wisdom in most
  3541.    programming cultures that it is best to design from higher levels
  3542.    of abstraction down to lower, specifying sequences of action in
  3543.    increasing detail until you get to actual code.  Hackers often find
  3544.    (especially in exploratory designs that cannot be closely
  3545.    specified in advance) that it works best to *build* things in
  3546.    the opposite order, by writing and testing a clean set of primitive
  3547.    operations and then knitting them together.
  3548.  
  3549. :bounce: v. 1. [perhaps by analogy to a bouncing check] An
  3550.    electronic mail message that is undeliverable and returns an error
  3551.    notification to the sender is said to `bounce'.  See also
  3552.    {bounce message}.  2. [Stanford] To play volleyball.  The
  3553.    now-demolished {D. C. Power Lab} building used by the Stanford
  3554.    AI Lab in the 1970s had a volleyball court on the front lawn.  From
  3555.    5 P.M. to 7 P.M. was the scheduled maintenance time for the
  3556.    computer, so every afternoon at 5 would come over the intercom the
  3557.    cry: "Now hear this: bounce, bounce!", followed by Brian McCune
  3558.    loudly bouncing a volleyball on the floor outside the offices of
  3559.    known volleyballers.  3. To engage in sexual intercourse; prob.
  3560.    from the expression `bouncing the mattress', but influenced by
  3561.    Roo's psychosexually loaded "Try bouncing me, Tigger!" from the
  3562.    "Winnie-the-Pooh" books.  Compare {boink}.  4. To casually
  3563.    reboot a system in order to clear up a transient problem.  Reported
  3564.    primarily among {VMS} users.  5.  [VM/CMS programmers]
  3565.    *Automatic* warm-start of a machine after an error.  "I
  3566.    logged on this morning and found it had bounced 7 times during the
  3567.    night" 6. [IBM] To {power cycle} a peripheral in order to reset
  3568.    it.
  3569.  
  3570. :bounce message: [UNIX] n. Notification message returned to sender
  3571.    by a site unable to relay {email} to the intended {{Internet
  3572.    address}} recipient or the next link in a {bang path} (see
  3573.    {bounce}).  Reasons might include a nonexistent or misspelled
  3574.    username or a {down} relay site.  Bounce messages can themselves
  3575.    fail, with occasionally ugly results; see {sorcerer's apprentice
  3576.    mode} and {software laser}.  The terms `bounce mail' and
  3577.    `barfmail' are also common.
  3578.  
  3579. :boustrophedon: [from a Greek word for turning like an ox while
  3580.    plowing] n. An ancient method of writing using alternate
  3581.    left-to-right and right-to-left lines.  This term is actually
  3582.    philologists' techspeak and typesetters' jargon.  Erudite hackers
  3583.    use it for an optimization performed by some computer typesetting
  3584.    software and moving-head printers.  The adverbial form
  3585.    `boustrophedonically' is also found (hackers purely love
  3586.    constructions like this).
  3587.  
  3588. :box: n. 1. A computer; esp. in the construction `foo box'
  3589.    where foo is some functional qualifier, like `graphics', or
  3590.    the name of an OS (thus, `UNIX box', `MS-DOS box', etc.)  "We
  3591.    preprocess the data on UNIX boxes before handing it up to the
  3592.    mainframe."  2. [IBM] Without qualification but within an
  3593.    SNA-using site, this refers specifically to an IBM front-end
  3594.    processor or FEP /F-E-P/.  An FEP is a small computer necessary
  3595.    to enable an IBM {mainframe} to communicate beyond the limits of
  3596.    the {dinosaur pen}.  Typically used in expressions like the cry
  3597.    that goes up when an SNA network goes down: "Looks like the
  3598.    {box} has fallen over." (See {fall over}.) See also
  3599.    {IBM}, {fear and loathing}, {fepped out}, {Blue
  3600.    Glue}.
  3601.  
  3602. :boxed comments: n. Comments (explanatory notes attached to program
  3603.    instructions) that occupy several lines by themselves; so called
  3604.    because in assembler and C code they are often surrounded by a box
  3605.    in a style something like this:
  3606.  
  3607.      /*************************************************
  3608.       *
  3609.       * This is a boxed comment in C style
  3610.       *
  3611.       *************************************************/
  3612.  
  3613.    Common variants of this style omit the asterisks in column 2 or add
  3614.    a matching row of asterisks closing the right side of the box.  The
  3615.    sparest variant omits all but the comment delimiters themselves;
  3616.    the `box' is implied.  Oppose {winged comments}.
  3617.  
  3618. :boxen: /bok'sn/ [by analogy with {VAXen}] pl.n. Fanciful
  3619.    plural of {box} often encountered in the phrase `UNIX boxen',
  3620.    used to describe commodity {{UNIX}} hardware.  The connotation is
  3621.    that any two UNIX boxen are interchangeable.
  3622.  
  3623. :boxology: /bok-sol'*-jee/ n. Syn. {ASCII art}.  This term
  3624.    implies a more restricted domain, that of box-and-arrow drawings.
  3625.    "His report has a lot of boxology in it."  Compare
  3626.    {macrology}.
  3627.  
  3628. :bozotic: /boh-zoh'tik/ or /boh-zo'tik/ [from the name of a TV
  3629.    clown even more losing than Ronald McDonald] adj. Resembling or
  3630.    having the quality of a bozo; that is, clownish, ludicrously wrong,
  3631.    unintentionally humorous.  Compare {wonky}, {demented}.  Note
  3632.    that the noun `bozo' occurs in slang, but the mainstream
  3633.    adjectival form would be `bozo-like' or (in New England)
  3634.    `bozoish'.
  3635.  
  3636. :BQS: /B-Q-S/ adj. Syn. {Berkeley Quality Software}.
  3637.  
  3638. :brain dump: n. The act of telling someone everything one knows
  3639.    about a particular topic or project.  Typically used when someone
  3640.    is going to let a new party maintain a piece of code.  Conceptually
  3641.    analogous to an operating system {core dump} in that it saves a
  3642.    lot of useful {state} before an exit.  "You'll have to
  3643.    give me a brain dump on FOOBAR before you start your new job at
  3644.    HackerCorp."  See {core dump} (sense 4).  At Sun, this is also
  3645.    known as `TOI' (transfer of information).
  3646.  
  3647. :brain fart: n. The actual result of a {braino}, as opposed to
  3648.    the mental glitch that is the braino itself.  E.g., typing
  3649.    `dir' on a UNIX box after a session with DOS.
  3650.  
  3651. :brain-damaged: 1. [generalization of `Honeywell Brain Damage'
  3652.    (HBD), a theoretical disease invented to explain certain utter
  3653.    cretinisms in Honeywell {{Multics}}] adj. Obviously wrong;
  3654.    {cretinous}; {demented}.  There is an implication that the
  3655.    person responsible must have suffered brain damage, because he
  3656.    should have known better.  Calling something brain-damaged is
  3657.    really bad; it also implies it is unusable, and that its failure to
  3658.    work is due to poor design rather than some accident.  "Only six
  3659.    monocase characters per file name?  Now *that's*
  3660.    brain-damaged!"  2. [esp. in the Mac world] May refer to free
  3661.    demonstration software that has been deliberately crippled in some
  3662.    way so as not to compete with the commercial product it is
  3663.    intended to sell.  Syn.  {crippleware}.
  3664.  
  3665. :brain-dead: adj. Brain-damaged in the extreme.  It tends to imply
  3666.    terminal design failure rather than malfunction or simple
  3667.    stupidity.  "This comm program doesn't know how to send a break
  3668.    --- how brain-dead!"
  3669.  
  3670. :braino: /bray'no/ n. Syn. for {thinko}. See also {brain
  3671.    fart}.
  3672.  
  3673. :branch to Fishkill: [IBM: from the location of one of the
  3674.    corporation's facilities] n. Any unexpected jump in a program that
  3675.    produces catastrophic or just plain weird results.  See {jump
  3676.    off into never-never land}, {hyperspace}.
  3677.  
  3678. :bread crumbs: n. Debugging statements inserted into a program that
  3679.    emit output or log indicators of the program's {state} to a file
  3680.    so you can see where it dies or pin down the cause of surprising
  3681.    behavior. The term is probably a reference to the Hansel and Gretel
  3682.    story from the Brothers Grimm; in several variants, a character
  3683.    leaves a trail of bread crumbs so as not to get lost in the
  3684.    woods.
  3685.  
  3686. :break: 1. vt. To cause to be {broken} (in any sense).  "Your latest
  3687.    patch to the editor broke the paragraph commands."  2. v.  (of a
  3688.    program) To stop temporarily, so that it may debugged.  The place
  3689.    where it stops is a `breakpoint'.  3. [techspeak] vi. To send an
  3690.    RS-232 break (two character widths of line high) over a serial comm
  3691.    line.  4. [UNIX] vi. To strike whatever key currently causes the
  3692.    tty driver to send SIGINT to the current process.  Normally, break
  3693.    (sense 3), delete or {control-C} does this.  5. `break break'
  3694.    may be said to interrupt a conversation (this is an example of verb
  3695.    doubling).  This usage comes from radio communications, which in
  3696.    turn probably came from landline telegraph/teleprinter usage, as
  3697.    badly abused in the Citizen's Band craze a few years ago.
  3698.  
  3699. :break-even point: n. in the process of implementing a new computer
  3700.    language, the point at which the language is sufficiently effective
  3701.    that one can implement the language in itself.  That is, for a new
  3702.    language called, hypothetically, FOOGOL, one has reached break-even
  3703.    when one can write a demonstration compiler for FOOGOL in FOOGOL,
  3704.    discard the original implementation language, and thereafter use
  3705.    working versions of FOOGOL to develop newer ones.  This is an
  3706.    important milestone; see {MFTL}.
  3707.  
  3708.    [Since this entry was first written, several correspondents have
  3709.    reported that there actually was a compiler for a tiny Algol-like
  3710.    language called Foogol floating around on various {vaxen} in the
  3711.    early and mid-1980s.  The above example may not, after all, be
  3712.    hypothetical. -- ESR]
  3713.  
  3714. :breath-of-life packet: [XEROX PARC] n. An Ethernet packet that
  3715.    contains bootstrap (see {boot}) code, periodically sent out
  3716.    from a working computer to infuse the `breath of life' into any
  3717.    computer on the network that has happened to crash.  Machines
  3718.    depending on such packets have sufficient hardware or firmware code
  3719.    to wait for (or request) such a packet during the reboot process.
  3720.    See also {dickless workstation}.
  3721.  
  3722.    The `kiss-of-death packet', with a function complementary to that of
  3723.    a breath-of-life packet, is recommended for dealing with hosts that
  3724.    consume too many network resources.  There is at least one documented
  3725.    instance of an Internet subnet with limited addres-table slots in a
  3726.    gateway machine in which kiss-of-death packets were routinely used 
  3727.    to compete for slots, rather like Christmas shoppers competing for
  3728.    scarce parking spaces.
  3729.  
  3730. :breedle: n. See {feep}.
  3731.  
  3732. :bring X to its knees: v. To present a machine, operating system,
  3733.    piece of software, or algorithm with a load so extreme or
  3734.    {pathological} that it grinds to a halt.  "To bring a MicroVAX
  3735.    to its knees, try twenty users running {vi} --- or four running
  3736.    {EMACS}."  Compare {hog}.
  3737.  
  3738. :brittle: adj. Said of software that is functional but easily
  3739.    broken by changes in operating environment or configuration, or by
  3740.    any minor tweak to the software itself.  Also, any system that
  3741.    responds inappropriately and disastrously to abnormal but expected
  3742.    external stimuli; e.g., a file system that is usually totally
  3743.    scrambled by a power failure is said to be brittle.  This term is
  3744.    often used to describe the results of a research effort that were
  3745.    never intended to be robust, but it can be applied to commercially
  3746.    developed software, which displays the quality far more often than
  3747.    it ought to.  Oppose {robust}.
  3748.  
  3749. :broadcast storm: n. An incorrect packet broadcast on a network that
  3750.    causes most hosts to respond all at once, typically with wrong
  3751.    answers that start the process over again.  See {network
  3752.    meltdown}.
  3753.  
  3754. :brochureware: n. Planned but non-existent product like
  3755.    {vaporware}, but with the added implication that marketing is
  3756.    actively selling and promoting it (they've printed brochures).
  3757.    Brochureware is often deployed as a strategic weapon; the idea is
  3758.    to con customers into not committing to an existing product of the
  3759.    competition's.  It is a safe bet that when a brochureware product
  3760.    finally becomes real, it will be more expensive than and inferior
  3761.    to the alternatives that had been available for years.
  3762.  
  3763. :broken: adj. 1. Not working properly (of programs).  2. Behaving
  3764.    strangely; especially (when used of people) exhibiting extreme
  3765.    depression.
  3766.  
  3767. :broken arrow: [IBM] n. The error code displayed on line 25 of a
  3768.    3270 terminal (or a PC emulating a 3270) for various kinds of
  3769.    protocol violations and "unexpected" error conditions (including
  3770.    connection to a {down} computer).  On a PC, simulated with
  3771.    `->/_', with the two center characters overstruck.
  3772.  
  3773.    Note: to appreciate this term fully, it helps to know that `broken
  3774.    arrow' is also military jargon for an accident involving nuclear
  3775.    weapons.... 
  3776.  
  3777. :broket: /broh'k*t/ or /broh'ket`/ [by analogy with `bracket': a
  3778.    `broken bracket'] n. Either of the characters `<' and `>',
  3779.    when used as paired enclosing delimiters.  This word
  3780.    originated as a contraction of the phrase `broken bracket', that
  3781.    is, a bracket that is bent in the middle.  (At MIT, and apparently
  3782.    in the {Real World} as well, these are usually called {angle
  3783.    brackets}.)
  3784.  
  3785. :Brooks's Law: prov. "Adding manpower to a late software project
  3786.    makes it later" --- a result of the fact that the expected
  3787.    advantage from splitting work among N programmers is
  3788.    O(N) (that is, proportional to N), but the complexity
  3789.    and communications cost associated with coordinating and then
  3790.    merging their work is O(N^2) (that is, proportional to the
  3791.    square of N).  The quote is from Fred Brooks, a manager of
  3792.    IBM's OS/360 project and author of `The Mythical Man-Month'
  3793.    (Addison-Wesley, 1975, ISBN 0-201-00650-2), an excellent early book
  3794.    on software engineering.  The myth in question has been most
  3795.    tersely expressed as "Programmer time is fungible" and Brooks
  3796.    established conclusively that it is not.  Hackers have never
  3797.    forgotten his advice; too often, {management} still does.  See
  3798.    also {creationism}, {second-system effect},
  3799.    {optimism}.
  3800.  
  3801. :BRS: /B-R-S/ n. Syn. {Big Red Switch}.  This abbreviation is
  3802.    fairly common on-line.
  3803.  
  3804. :brute force: adj. Describes a primitive programming style, one in
  3805.    which the programmer relies on the computer's processing power
  3806.    instead of using his or her own intelligence to simplify the
  3807.    problem, often ignoring problems of scale and applying naive
  3808.    methods suited to small problems directly to large ones.  The term
  3809.    can also be used in reference to programming style: brute-force
  3810.    programs are written in a heavyhanded, tedious way, full of
  3811.    repetition and devoid of any elegance or useful abstraction (see
  3812.    also {brute force and ignorance}).
  3813.  
  3814.    The {canonical} example of a brute-force algorithm is associated
  3815.    with the `traveling salesman problem' (TSP), a classical
  3816.    {NP-}hard problem: Suppose a person is in, say, Boston, and
  3817.    wishes to drive to N other cities.  In what order should the
  3818.    cities be visited in order to minimize the distance travelled?  The
  3819.    brute-force method is to simply generate all possible routes and
  3820.    compare the distances; while guaranteed to work and simple to
  3821.    implement, this algorithm is clearly very stupid in that it
  3822.    considers even obviously absurd routes (like going from Boston to
  3823.    Houston via San Francisco and New York, in that order).  For very
  3824.    small N it works well, but it rapidly becomes absurdly
  3825.    inefficient when N increases (for N = 15, there are
  3826.    already 1,307,674,368,000 possible routes to consider, and for
  3827.    N = 1000 --- well, see {bignum}).  Sometimes,
  3828.    unfortunately, there is no better general solution than brute
  3829.    force.  See also {NP-}.
  3830.  
  3831.    A more simple-minded example of brute-force programming is finding
  3832.    the smallest number in a large list by first using an existing
  3833.    program to sort the list in ascending order, and then picking the
  3834.    first number off the front.
  3835.  
  3836.    Whether brute-force programming should actually be considered
  3837.    stupid or not depends on the context; if the problem is not
  3838.    terribly big, the extra CPU time spent on a brute-force solution
  3839.    may cost less than the programmer time it would take to develop a
  3840.    more `intelligent' algorithm.  Additionally, a more intelligent
  3841.    algorithm may imply more long-term complexity cost and bug-chasing
  3842.    than are justified by the speed improvement.
  3843.  
  3844.    Ken Thompson, co-inventor of UNIX, is reported to have uttered the
  3845.    epigram "When in doubt, use brute force".  He probably intended
  3846.    this as a {ha ha only serious}, but the original UNIX kernel's
  3847.    preference for simple, robust, and portable algorithms over
  3848.    {brittle} `smart' ones does seem to have been a significant
  3849.    factor in the success of that OS.  Like so many other tradeoffs in
  3850.    software design, the choice between brute force and complex,
  3851.    finely-tuned cleverness is often a difficult one that requires both
  3852.    engineering savvy and delicate esthetic judgment.
  3853.  
  3854. :brute force and ignorance: n. A popular design technique at many
  3855.    software houses --- {brute force} coding unrelieved by any
  3856.    knowledge of how problems have been previously solved in elegant
  3857.    ways.  Dogmatic adherence to design methodologies tends to
  3858.    encourage this sort of thing.  Characteristic of early {larval
  3859.    stage} programming; unfortunately, many never outgrow it.  Often
  3860.    abbreviated BFI: "Gak, they used a {bubble sort}!  That's
  3861.    strictly from BFI."  Compare {bogosity}.
  3862.  
  3863. :BSD: /B-S-D/ n. [abbreviation for `Berkeley System Distribution'] a
  3864.    family of {{UNIX}} versions for the DEC {VAX} and PDP-11
  3865.    developed by Bill Joy and others at {Berzerkeley} starting
  3866.    around 1980, incorporating paged virtual memory, TCP/IP networking
  3867.    enhancements, and many other features.  The BSD versions (4.1, 4.2,
  3868.    and 4.3) and the commercial versions derived from them (SunOS,
  3869.    ULTRIX, and Mt. Xinu) held the technical lead in the UNIX world
  3870.    until AT&T's successful standardization efforts after about 1986,
  3871.    and are still widely popular.  See {{UNIX}}, {USG UNIX}.
  3872.  
  3873. :BUAF: // [abbreviation, from alt.fan.warlord] n. Big
  3874.    Ugly ASCII Font --- a special form of {ASCII art}.  Various
  3875.    programs exist for rendering text strings into block, bloob, and
  3876.    pseudo-script fonts in cells between four and six character cells
  3877.    on a side; this is smaller than the letters generated by older
  3878.    {banner} (sense 2) programs.  These are sometimes used to render
  3879.    one's name in a {sig block}, and are critically referred to as
  3880.    `BUAF's.  See {warlording}.
  3881.  
  3882. :BUAG: // [abbreviation, from alt.fan.warlord] n. Big Ugly
  3883.    ASCII Graphic.  Pejorative term for ugly {ASCII ART}, especially
  3884.    as found in {sig block}s.  For some reason, mutations of the
  3885.    head of Bart Simpson are particularly common in the least
  3886.    imaginative {sig block}s. See {warlording}.
  3887.  
  3888. :bubble sort: n. Techspeak for a particular sorting technique in
  3889.    which pairs of adjacent values in the list to be sorted are
  3890.    compared and interchanged if they are out of order; thus, list
  3891.    entries `bubble upward' in the list until they bump into one with a
  3892.    lower sort value.  Because it is not very good relative to other
  3893.    methods and is the one typically stumbled on by {naive} and
  3894.    untutored programmers, hackers consider it the {canonical}
  3895.    example of a naive algorithm.  The canonical example of a really
  3896.    *bad* algorithm is {bogo-sort}.  A bubble sort might be used
  3897.    out of ignorance, but any use of bogo-sort could issue only from
  3898.    brain damage or willful perversity.
  3899.  
  3900. :bucky bits: /buh'kee bits/ n. 1. obs. The bits produced by the
  3901.    CONTROL and META shift keys on a SAIL keyboard (octal 200 and 400
  3902.    respectively), resulting in a 9-bit keyboard character set.  The
  3903.    MIT AI TV (Knight) keyboards extended this with TOP and separate
  3904.    left and right CONTROL and META keys, resulting in a 12-bit
  3905.    character set; later, LISP Machines added such keys as SUPER,
  3906.    HYPER, and GREEK (see {space-cadet keyboard}).  2. By extension,
  3907.    bits associated with `extra' shift keys on any keyboard, e.g.,
  3908.    the ALT on an IBM PC or command and option keys on a Macintosh.
  3909.  
  3910.    It has long been rumored that `bucky bits' were named for
  3911.    Buckminster Fuller during a period when he was consulting at
  3912.    Stanford.  Actually, bucky bits were invented by Niklaus Wirth when
  3913.    *he* was at Stanford; he first suggested the idea of an EDIT
  3914.    key to set the 8th bit of an otherwise 7-bit ASCII character.  This
  3915.    was used in a number of editors written at Stanford or in its
  3916.    environs (TV-EDIT and NLS being the best-known).  Some sources
  3917.    claim that `Bucky' was Niklaus Wirth's nickname st Stanford,
  3918.    but Wirth himself does not recall this.
  3919.  
  3920.    Whatever its origins, the term spread to MIT and CMU early and is
  3921.    now in general use.  See {double bucky}, {quadruple
  3922.    bucky}.
  3923.  
  3924. :buffer overflow: n. What happens when you try to stuff more data
  3925.    into a buffer (holding area) than it can handle.  This may be due
  3926.    to a mismatch in the processing rates of the producing and
  3927.    consuming processes (see {overrun} and {firehose syndrome}),
  3928.    or because the buffer is simply too small to hold all the data that
  3929.    must accumulate before a piece of it can be processed.  For example,
  3930.    in a text-processing tool that {crunch}es a line at a time, a
  3931.    short line buffer can result in {lossage} as input from a long
  3932.    line overflows the buffer and trashes data beyond it.  Good
  3933.    defensive programming would check for overflow on each character
  3934.    and stop accepting data when the buffer is full up.  The term is
  3935.    used of and by humans in a metaphorical sense.  "What time did I
  3936.    agree to meet you?  My buffer must have overflowed."  Or "If I
  3937.    answer that phone my buffer is going to overflow."  See also
  3938.    {spam}, {overrun screw}.
  3939.  
  3940. :bug: n. An unwanted and unintended property of a program or piece
  3941.    of hardware, esp. one that causes it to malfunction.  Antonym of
  3942.    {feature}.  Examples: "There's a bug in the editor: it writes
  3943.    things out backwards."  "The system crashed because of a hardware
  3944.    bug."  "Fred is a winner, but he has a few bugs" (i.e., Fred is
  3945.    a good guy, but he has a few personality problems).
  3946.  
  3947.    Historical note: Admiral Grace Hopper (an early computing pioneer
  3948.    better known for inventing {COBOL}) liked to tell a story in
  3949.    which a technician solved a persistent {glitch} in the Harvard
  3950.    Mark II machine by pulling an actual insect out from between the
  3951.    contacts of one of its relays, and she subsequently promulgated
  3952.    {bug} in its hackish sense as a joke about the incident (though,
  3953.    as she was careful to admit, she was not there when it happened).
  3954.    For many years the logbook associated with the incident and the
  3955.    actual bug in question (a moth) sat in a display case at the Naval
  3956.    Surface Warfare Center (NSWC).  The entire story, with a picture of
  3957.    the logbook and the moth taped into it, is recorded in the
  3958.    `Annals of the History of Computing', Vol. 3, No. 3
  3959.    (July 1981), pp. 285--286.
  3960.  
  3961.    The text of the log entry (from September 9, 1947), reads "1545
  3962.    Relay #70 Panel F (moth) in relay.  First actual case of bug being
  3963.    found".  This wording establishes that the term was already
  3964.    in use at the time in its current specific sense --- and Hopper
  3965.    herself reports that the term `bug' was regularly applied to
  3966.    problems in radar electronics during WWII.
  3967.  
  3968.    Indeed, the use of `bug' to mean an industrial defect was already
  3969.    established in Thomas Edison's time, and a more specific and rather
  3970.    modern use can be found in an electrical handbook from 1896
  3971.    (`Hawkin's New Catechism of Electricity', Theo. Audel & Co.)
  3972.    which says: "The term `bug' is used to a limited extent to
  3973.    designate any fault or trouble in the connections or working of
  3974.    electric apparatus."  It further notes that the term is "said to
  3975.    have originated in quadruplex telegraphy and have been transferred
  3976.    to all electric apparatus."
  3977.  
  3978.    The latter observation may explain a common folk etymology of the
  3979.    term; that it came from telephone company usage, in which "bugs in
  3980.    a telephone cable" were blamed for noisy lines.  Though this
  3981.    derivation seems to be mistaken, it may well be a distorted memory
  3982.    of a joke first current among *telegraph* operators more than
  3983.    a century ago!
  3984.  
  3985.    Actually, use of `bug' in the general sense of a disruptive event
  3986.    goes back to Shakespeare!  In the first edition of Samuel Johnson's
  3987.    dictionary one meaning of `bug' is "A frightful object; a
  3988.    walking spectre"; this is traced to `bugbear', a Welsh term for
  3989.    a variety of mythological monster which (to complete the circle)
  3990.    has recently been reintroduced into the popular lexicon through
  3991.    fantasy role-playing games.
  3992.  
  3993.    In any case, in jargon the word almost never refers to insects.
  3994.    Here is a plausible conversation that never actually happened:
  3995.  
  3996.    "There is a bug in this ant farm!"
  3997.  
  3998.    "What do you mean?  I don't see any ants in it."
  3999.  
  4000.    "That's the bug."
  4001.  
  4002.    [There has been a widespread myth that the original bug was moved
  4003.    to the Smithsonian, and an earlier version of this entry so
  4004.    asserted.  A correspondent who thought to check discovered that the
  4005.    bug was not there.  While investigating this in late 1990, your
  4006.    editor discovered that the NSWC still had the bug, but had
  4007.    unsuccessfully tried to get the Smithsonian to accept it --- and
  4008.    that the present curator of their History of American Technology
  4009.    Museum didn't know this and agreed that it would make a worthwhile
  4010.    exhibit.  It was moved to the Smithsonian in mid-1991.  Thus, the
  4011.    process of investigating the original-computer-bug bug fixed it in
  4012.    an entirely unexpected way, by making the myth true!  --- ESR]
  4013.  
  4014.    [1992 update: the plot thickens!  A usually reliable source reports
  4015.    having seen The Bug at the Smithsonian in 1978.  I am unable to
  4016.    reconcile the conflicting histories I have been offered, and merely
  4017.    report this fact here. --- ESR.]
  4018.  
  4019. :bug-compatible: adj. Said of a design or revision that has been
  4020.    badly compromised by a requirement to be compatible with
  4021.    {fossil}s or {misfeature}s in other programs or (esp.)
  4022.    previous releases of itself. "MS-DOS 2.0 used \ as a path
  4023.    separator to be bug-compatible with some cretin's choice of / as an
  4024.    option character in 1.0."
  4025.  
  4026. :bug-for-bug compatible: n. Same as {bug-compatible}, with the
  4027.    additional implication that much tedious effort went into ensuring
  4028.    that each (known) bug was replicated.
  4029.  
  4030. :buglix: /buhg'liks/ n. Pejorative term referring to DEC's ULTRIX
  4031.    operating system in its earlier *severely* buggy versions.
  4032.    Still used to describe ULTRIX, but without nearly so much venom.
  4033.    Compare {AIDX}, {HP-SUX}, {Nominal Semidestructor},
  4034.    {Telerat}, {sun-stools}.
  4035.  
  4036. :bulletproof: adj. Used of an algorithm or implementation
  4037.    considered extremely {robust}; lossage-resistant; capable of
  4038.    correctly recovering from any imaginable exception condition --- a
  4039.    rare and valued quality.  Syn. {armor-plated}.
  4040.  
  4041. :bum: 1. vt. To make highly efficient, either in time or space,
  4042.    often at the expense of clarity.  "I managed to bum three more
  4043.    instructions out of that code."  "I spent half the night bumming
  4044.    the interrupt code."  In {elder days}, John McCarthy (inventor
  4045.    of {LISP}) used to compare some efficiency-obsessed hackers
  4046.    among his students to "ski bums"; thus, optimization became
  4047.    "program bumming", and eventually just "bumming".  2. To
  4048.    squeeze out excess; to remove something in order to improve
  4049.    whatever it was removed from (without changing function; this
  4050.    distinguishes the process from a {featurectomy}).  3. n. A small
  4051.    change to an algorithm, program, or hardware device to make it more
  4052.    efficient.  "This hardware bum makes the jump instruction
  4053.    faster."  Usage: now uncommon, largely superseded by v. {tune}
  4054.    (and n. {tweak}, {hack}), though none of these exactly
  4055.    capture sense 2.  All these uses are rare in Commonwealth hackish,
  4056.    because in the parent dialects of English `bum' is a rude synonym
  4057.    for `buttocks'.
  4058.  
  4059. :bump: vt. Synonym for increment.  Has the same meaning as
  4060.    C's ++ operator.  Used esp. of counter variables, pointers, and
  4061.    index dummies in `for', `while', and `do-while'
  4062.    loops.
  4063.  
  4064. :burble: [from Lewis Carroll's "Jabberwocky"] v. Like {flame},
  4065.    but connotes that the source is truly clueless and ineffectual
  4066.    (mere flamers can be competent).  A term of deep contempt.
  4067.    "There's some guy on the phone burbling about how he got a DISK
  4068.    FULL error and it's all our comm software's fault."  This
  4069.    is mainstream slang in some parts of England.
  4070.  
  4071. :buried treasure: n. A surprising piece of code found in some
  4072.    program.  While usually not wrong, it tends to vary from {crufty}
  4073.    to {bletcherous}, and has lain undiscovered only because it was
  4074.    functionally correct, however horrible it is.  Used sarcastically,
  4075.    because what is found is anything *but* treasure.  Buried
  4076.    treasure almost always needs to be dug up and removed.  "I just
  4077.    found that the scheduler sorts its queue using {bubble sort}!
  4078.    Buried treasure!"
  4079.  
  4080. :burn-in period: n. 1. A factory test designed to catch systems
  4081.    with {marginal} components before they get out the door; the
  4082.    theory is that burn-in will protect customers by outwaiting the
  4083.    steepest part of the {bathtub curve} (see {infant
  4084.    mortality}).  2. A period of indeterminate length in which a person
  4085.    using a computer is so intensely involved in his project that he
  4086.    forgets basic needs such as food, drink, sleep, etc.  Warning:
  4087.    Excessive burn-in can lead to burn-out.  See {hack mode},
  4088.    {larval stage}.
  4089.  
  4090. :burst page: n. Syn. {banner}, sense 1.
  4091.  
  4092. :busy-wait: vi. Used of human behavior, conveys that the subject is
  4093.    busy waiting for someone or something, intends to move instantly as
  4094.    soon as it shows up, and thus cannot do anything else at the
  4095.    moment.  "Can't talk now, I'm busy-waiting till Bill gets off the
  4096.    phone."
  4097.  
  4098.    Technically, `busy-wait' means to wait on an event by
  4099.    {spin}ning through a tight or timed-delay loop that polls for
  4100.    the event on each pass, as opposed to setting up an interrupt
  4101.    handler and continuing execution on another part of the task.  This
  4102.    is a wasteful technique, best avoided on time-sharing systems where
  4103.    a busy-waiting program may {hog} the processor.
  4104.  
  4105. :buzz: vi. 1. Of a program, to run with no indication of progress
  4106.    and perhaps without guarantee of ever finishing; esp. said of
  4107.    programs thought to be executing tight loops of code.  A program
  4108.    that is buzzing appears to be {catatonic}, but never gets out
  4109.    of catatonia, while a buzzing loop may eventually end of its own
  4110.    accord.  "The program buzzes for about 10 seconds trying to sort
  4111.    all the names into order."  See {spin}; see also {grovel}.
  4112.    2. [ETA Systems] To test a wire or printed circuit trace for
  4113.    continuity by applying an AC rather than DC signal.  Some wire
  4114.    faults will pass DC tests but fail a buzz test.  3. To process an
  4115.    array or list in sequence, doing the same thing to each element.
  4116.    "This loop buzzes through the tz array looking for a terminator
  4117.    type."
  4118.  
  4119. :BWQ: /B-W-Q/ [IBM: abbreviation, `Buzz Word Quotient'] The
  4120.    percentage of buzzwords in a speech or documents.  Usually roughly
  4121.    proportional to {bogosity}.  See {TLA}.
  4122.  
  4123. :by hand: adv. 1. Said of an operation (especially a repetitive,
  4124.    trivial, and/or tedious one) that ought to be performed
  4125.    automatically by the computer, but which a hacker instead has to
  4126.    step tediously through.  "My mailer doesn't have a command to
  4127.    include the text of the message I'm replying to, so I have to do it
  4128.    by hand."  This does not necessarily mean the speaker has to
  4129.    retype a copy of the message; it might refer to, say, dropping into
  4130.    a subshell from the mailer, making a copy of one's mailbox
  4131.    file, reading that into an editor, locating the top and bottom of
  4132.    the message in question, deleting the rest of the file, inserting
  4133.    `>' characters on each line, writing the file, leaving the editor,
  4134.    returning to the mailer, reading the file in, and later remembering
  4135.    to delete the file.  Compare {eyeball search}.  2. By extension,
  4136.    writing code which does something in an explicit or low-level way
  4137.    for which a presupplied library routine ought to have been
  4138.    available.  "This cretinous B-tree library doesn't supply a decent
  4139.    iterator, so I'm having to walk the trees by hand."
  4140.  
  4141. :byte:: /bi:t/ [techspeak] n. A unit of memory or data equal to
  4142.    the amount used to represent one character; on modern architectures
  4143.    this is usually 8 bits, but may be 9 on 36-bit machines.  Some
  4144.    older architectures used `byte' for quantities of 6 or 7 bits, and
  4145.    the PDP-10 supported `bytes' that were actually bitfields of
  4146.    1 to 36 bits!  These usages are now obsolete, and even 9-bit bytes
  4147.    have become rare in the general trend toward power-of-2 word sizes.
  4148.  
  4149.    Historical note: The term was coined by Werner Buchholz in 1956
  4150.    during the early design phase for the IBM Stretch computer;
  4151.    originally it was described as 1 to 6 bits (typical I/O equipment
  4152.    of the period used 6-bit chunks of information).  The move to an
  4153.    8-bit byte happened in late 1956, and this size was later adopted
  4154.    and promulgated as a standard by the System/360.  The word was
  4155.    coined by mutating the word `bite' so it would not be
  4156.    accidentally misspelled as {bit}.  See also {nybble}.
  4157.  
  4158. :bytesexual: /bi:t`sek'shu-*l/ adj. Said of hardware, denotes
  4159.    willingness to compute or pass data in either {big-endian} or
  4160.    {little-endian} format (depending, presumably, on a {mode bit}
  4161.    somewhere).  See also {NUXI problem}.
  4162.  
  4163. :bzzzt, wrong: /bzt rong/ [USENET/Internet] From a Robin Williams
  4164.    routine in the movie "Dead Poets Society" spoofing radio or
  4165.    TV quiz programs, such as *Truth or Consequences*, where an
  4166.    incorrect answer earns one a blast from the buzzer and condolences
  4167.    from the interlocutor.  A way of expressing mock-rude disagreement,
  4168.    usually immediately following an included quote from another
  4169.    poster.  The less abbreviated "*Bzzzzt*, wrong, but thank you for
  4170.    playing" is also common; capitalization and emphasis of the
  4171.    buzzer sound varies.
  4172.  
  4173. = C =
  4174. =====
  4175.  
  4176. :C: n. 1. The third letter of the English alphabet.  2. ASCII
  4177.    1000011.  3. The name of a programming language designed by
  4178.    Dennis Ritchie during the early 1970s and immediately used to
  4179.    reimplement {{UNIX}}; so called because many features derived
  4180.    from an earlier compiler named `B' in commemoration of
  4181.    *its* parent, BCPL.  Before Bjarne Stroustrup settled the
  4182.    question by designing C++, there was a humorous debate over whether
  4183.    C's successor should be named `D' or `P'.  C became immensely
  4184.    popular outside Bell Labs after about 1980 and is now the dominant
  4185.    language in systems and microcomputer applications programming.
  4186.    See also {languages of choice}, {indent style}.
  4187.  
  4188.    C is often described, with a mixture of fondness and disdain
  4189.    varying according to the speaker, as "a language that combines
  4190.    all the elegance and power of assembly language with all the
  4191.    readability and maintainability of assembly language".
  4192.  
  4193. :C Programmer's Disease: n. The tendency of the undisciplined C
  4194.    programmer to set arbitrary but supposedly generous static limits
  4195.    on table sizes (defined, if you're lucky, by constants in header
  4196.    files) rather than taking the trouble to do proper dynamic storage
  4197.    allocation.  If an application user later needs to put 68 elements
  4198.    into a table of size 50, the afflicted programmer reasons that he
  4199.    or she can easily reset the table size to 68 (or even as much as
  4200.    70, to allow for future expansion) and recompile.  This gives the
  4201.    programmer the comfortable feeling of having made the effort to
  4202.    satisfy the user's (unreasonable) demands, and often affords the
  4203.    user multiple opportunities to explore the marvelous consequences
  4204.    of {fandango on core}.  In severe cases of the disease, the
  4205.    programmer cannot comprehend why each fix of this kind seems only
  4206.    to further disgruntle the user.
  4207.  
  4208. :calculator: [Cambridge] n. Syn. for {bitty box}.
  4209.  
  4210. :can: vt. To abort a job on a time-sharing system.  Used esp. when the
  4211.    person doing the deed is an operator, as in "canned from the
  4212.    {{console}}".  Frequently used in an imperative sense, as in "Can
  4213.    that print job, the LPT just popped a sprocket!"  Synonymous with
  4214.    {gun}.  It is said that the ASCII character with mnemonic CAN
  4215.    (0011000) was used as a kill-job character on some early OSes.
  4216.    Alternatively, this may derive from mainstream slang `canned' for
  4217.    being laid off or fired.
  4218.  
  4219. :can't happen: The traditional program comment for code executed
  4220.    under a condition that should never be true, for example a file
  4221.    size computed as negative.  Often, such a condition being true
  4222.    indicates data corruption or a faulty algorithm; it is almost
  4223.    always handled by emitting a fatal error message and terminating or
  4224.    crashing, since there is little else that can be done.  Some case
  4225.    variant of "can't happen" is also often the text emitted if the
  4226.    `impossible' error actually happens!  Although "can't happen"
  4227.    events are genuinely infrequent in production code, programmers
  4228.    wise enough to check for them habitually are often surprised at how
  4229.    frequently they are triggered during development and how many
  4230.    headaches checking for them turns out to head off. See also
  4231.    {firewall code} (sense 2).
  4232.  
  4233. :candygrammar: n. A programming-language grammar that is mostly
  4234.    {syntactic sugar}; the term is also a play on `candygram'.
  4235.    {COBOL}, Apple's Hypertalk language, and a lot of the so-called
  4236.    `4GL' database languages share this property.  The usual intent
  4237.    of such designs is that they be as English-like as possible, on the
  4238.    theory that they will then be easier for unskilled people to
  4239.    program.  This intention comes to grief on the reality that syntax
  4240.    isn't what makes programming hard; it's the mental effort and
  4241.    organization required to specify an algorithm precisely that
  4242.    costs.  Thus the invariable result is that `candygrammar'
  4243.    languages are just as difficult to program in as terser ones, and
  4244.    far more painful for the experienced hacker.
  4245.  
  4246.    [The overtones from the old Chevy Chase skit on Saturday Night Live
  4247.    should not be overlooked.  This was a "Jaws" parody.
  4248.    Someone lurking outside an apartment door tries all kinds of bogus
  4249.    ways to get the occupant to open up, while ominous music plays in
  4250.    the background.  The last attempt is a half-hearted "Candygram!"
  4251.    When the door is opened, a shark bursts in and chomps the poor
  4252.    occupant.  There is a moral here for those attracted to
  4253.    candygrammars.  Note that, in many circles, pretty much the same
  4254.    ones who remember Monty Python sketches, all it takes is the word
  4255.    "Candygram!", suitably timed, to get people rolling on the
  4256.    floor. --- GLS]
  4257.  
  4258. :canonical: [historically, `according to religious law'] adj. The
  4259.    usual or standard state or manner of something.  This word has a
  4260.    somewhat more technical meaning in mathematics.  Two formulas such
  4261.    as 9 + x and x + 9 are said to be equivalent because
  4262.    they mean the same thing, but the second one is in `canonical
  4263.    form' because it is written in the usual way, with the highest
  4264.    power of x first.  Usually there are fixed rules you can use
  4265.    to decide whether something is in canonical form.  The jargon
  4266.    meaning, a relaxation of the technical meaning, acquired its
  4267.    present loading in computer-science culture largely through its
  4268.    prominence in Alonzo Church's work in computation theory and
  4269.    mathematical logic (see {Knights of the Lambda Calculus}).
  4270.    Compare {vanilla}.
  4271.  
  4272.    This word has an interesting history.  Non-technical academics do
  4273.    not use the adjective `canonical' in any of the senses defined
  4274.    above with any regularity; they do however use the nouns `canon'
  4275.    and `canonicity' (not **canonicalness or **canonicality). The
  4276.    `canon' of a given author is the complete body of authentic works
  4277.    by that author (this usage is familiar to Sherlock Holmes fans as
  4278.    well as to literary scholars).  `*The* canon' is the body of
  4279.    works in a given field (e.g., works of literature, or of art, or of
  4280.    music) deemed worthwhile for students to study and for scholars to
  4281.    investigate.
  4282.  
  4283.    The word `canon' derives ultimately from the Greek
  4284.    `kanon'
  4285.    (akin to the English `cane') referring to a reed.  Reeds were used
  4286.    for measurement, and in Latin and later Greek the word `canon'
  4287.    meant a rule or a standard.  The establishment of a canon of
  4288.    scriptures within Christianity was meant to define a standard or a
  4289.    rule for the religion.  The above non-techspeak academic usages
  4290.    stem from this instance of a defined and accepted body of work.
  4291.    Alongside this usage was the promulgation of `canons' (`rules')
  4292.    for the government of the Catholic Church.  The techspeak usages
  4293.    ("according to religious law") derive from this use of the Latin
  4294.    `canon'.
  4295.  
  4296.    Hackers invest this term with a playfulness that makes an ironic
  4297.    contrast with its historical meaning.  A true story: One Bob
  4298.    Sjoberg, new at the MIT AI Lab, expressed some annoyance at the use
  4299.    of jargon.  Over his loud objections, GLS and RMS made a point of
  4300.    using it as much as possible in his presence, and eventually it
  4301.    began to sink in.  Finally, in one conversation, he used the word
  4302.    `canonical' in jargon-like fashion without thinking.  Steele:
  4303.    "Aha!  We've finally got you talking jargon too!"  Stallman:
  4304.    "What did he say?"  Steele: "Bob just used `canonical' in the
  4305.    canonical way."
  4306.  
  4307.    Of course, canonicality depends on context, but it is implicitly
  4308.    defined as the way *hackers* normally expect things to be.
  4309.    Thus, a hacker may claim with a straight face that `according to
  4310.    religious law' is *not* the canonical meaning of `canonical'.
  4311.  
  4312. :card walloper: n. An EDP programmer who grinds out batch programs
  4313.    that do stupid things like print people's paychecks.  Compare
  4314.    {code grinder}.  See also {{punched card}}, {eighty-column
  4315.    mind}.
  4316.  
  4317. :careware: /keir'weir/ n. {Shareware} for which either the
  4318.    author suggests that some payment be made to a nominated charity
  4319.    or a levy directed to charity is included on top of the
  4320.    distribution charge.  Syn. {charityware}; compare
  4321.    {crippleware}, sense 2.
  4322.  
  4323. :cargo cult programming: n. A style of (incompetent) programming
  4324.    dominated by ritual inclusion of code or program structures that
  4325.    serve no real purpose.  A cargo cult programmer will usually
  4326.    explain the extra code as a way of working around some bug
  4327.    encountered in the past, but usually neither the bug nor the reason
  4328.    the code apparently avoided the bug was ever fully understood
  4329.    (compare {shotgun debugging}, {voodoo programming}).
  4330.  
  4331.    The term `cargo cult' is a reference to aboriginal religions that
  4332.    grew up in the South Pacific after World War II.  The practices of
  4333.    these cults center on building elaborate mockups of airplanes and
  4334.    military style landing strips in the hope of bringing the return of
  4335.    the god-like airplanes that brought such marvelous cargo during the
  4336.    war.  Hackish usage probably derives from Richard Feynman's
  4337.    characterization of certain practices as "cargo cult science" in
  4338.    his book `Surely You're Joking, Mr. Feynman' (W. W. Norton
  4339.    & Co, New York 1985, ISBN 0-393-01921-7).
  4340.  
  4341. :cascade: n. 1. A huge volume of spurious error-message output
  4342.    produced by a compiler with poor error recovery.  Too frequently,
  4343.    one trivial syntax error (such as a missing `)' or `}') throws the
  4344.    parser out of synch so that much of the remaining program text is
  4345.    interpreted as garbaged or ill-formed.  2. A chain of USENET
  4346.    followups, each adding some trivial variation or riposte to the text
  4347.    of the previous one, all of which is reproduced in the new message;
  4348.    an {include war} in which the object is to create a sort of
  4349.    communal graffito.
  4350.  
  4351. :case and paste: [from `cut and paste'] n. 1. The addition of a new
  4352.    {feature} to an existing system by selecting the code from an
  4353.    existing feature and pasting it in with minor changes.  Common in
  4354.    telephony circles because most operations in a telephone switch are
  4355.    selected using `case' statements.  Leads to {software bloat}.
  4356.  
  4357.    In some circles of EMACS users this is called `programming by
  4358.    Meta-W', because Meta-W is the EMACS command for copying a block of
  4359.    text to a kill buffer in preparation to pasting it in elsewhere.
  4360.    The term is condescending, implying that the programmer is acting
  4361.    mindlessly rather than thinking carefully about what is required to
  4362.    integrate the code for two similar cases.
  4363.  
  4364. :casters-up mode: [IBM] n. Yet another synonym for `broken' or
  4365.    `down'.  Usually connotes a major failure.  A system (hardware or
  4366.    software) which is `down' may be already being restarted before
  4367.    the failure is noticed, whereas one which is `casters up' is
  4368.    usually a good excuse to take the rest of the day off (as long as
  4369.    you're not responsible for fixing it).
  4370.  
  4371. :casting the runes: n. What a {guru} does when you ask him or
  4372.    her to run a particular program and type at it because it never
  4373.    works for anyone else; esp. used when nobody can ever see what
  4374.    the guru is doing different from what J. Random Luser does.
  4375.    Compare {incantation}, {runes}, {examining the entrails};
  4376.    also see the AI koan about Tom Knight in "{A Selection
  4377.    of AI Koans}" ({Appendix A}).
  4378.  
  4379. :cat: [from `catenate' via {{UNIX}} `cat(1)'] vt.
  4380.    1. [techspeak] To spew an entire file to the screen or some other
  4381.    output sink without pause.  2. By extension, to dump large amounts
  4382.    of data at an unprepared target or with no intention of browsing it
  4383.    carefully.  Usage: considered silly.  Rare outside UNIX sites.  See
  4384.    also {dd}, {BLT}.
  4385.  
  4386.    Among UNIX fans, `cat(1)' is considered an excellent example
  4387.    of user-interface design, because it delivers the file contents
  4388.    without such verbosity as spacing or headers between the files, and
  4389.    because it does not require the files to consist of lines of text,
  4390.    but works with any sort of data.
  4391.  
  4392.    Among UNIX haters, `cat(1)' is considered the {canonical}
  4393.    example of *bad* user-interface design, because of its
  4394.    woefully unobvious name.  It is far more often used to {blast} a
  4395.    file to standard output than to concatenate two files.  The name
  4396.    `cat' for the former operation is just as unintuitive as, say,
  4397.    LISP's {cdr}.
  4398.  
  4399.    Of such oppositions are {holy wars} made....
  4400.  
  4401. :catatonic: adj. Describes a condition of suspended animation in
  4402.    which something is so {wedged} or {hung} that it makes no
  4403.    response.  If you are typing on a terminal and suddenly the
  4404.    computer doesn't even echo the letters back to the screen as you
  4405.    type, let alone do what you're asking it to do, then the computer
  4406.    is suffering from catatonia (possibly because it has crashed).
  4407.    "There I was in the middle of a winning game of {nethack} and it
  4408.    went catatonic on me!  Aaargh!" Compare {buzz}.
  4409.  
  4410. :cd tilde: /C-D til-d*/ vi.  To go home.  From the UNIX C-shell
  4411.    and Korn-shell command `cd ~', which takes one to
  4412.    one's `$HOME' (`cd' with no arguments happens to do the
  4413.    same thing).  By extension, may be used with other arguments; thus,
  4414.    over an electronic chat link, `cd ~coffee' would
  4415.    mean "I'm going to the coffee machine."
  4416.  
  4417. :cdr: /ku'dr/ or /kuh'dr/ [from LISP] vt. To skip past the
  4418.    first item from a list of things (generalized from the LISP
  4419.    operation on binary tree structures, which returns a list
  4420.    consisting of all but the first element of its argument).  In the
  4421.    form `cdr down', to trace down a list of elements:  "Shall we
  4422.    cdr down the agenda?"  Usage: silly.  See also {loop through}.
  4423.  
  4424.    Historical note: The instruction format of the IBM 7090 that hosted
  4425.    the original LISP implementation featured two 15-bit fields called
  4426.    the `address' and `decrement' parts.  The term `cdr' was originally
  4427.    `Contents of Decrement part of Register'.  Similarly, `car' stood
  4428.    for `Contents of Address part of Register'.
  4429.  
  4430.    The cdr and car operations have since become bases for
  4431.    formation of compound metaphors in non-LISP contexts.  GLS recalls,
  4432.    for example, a programming project in which strings were
  4433.    represented as linked lists; the get-character and skip-character
  4434.    operations were of course called CHAR and CHDR.
  4435.  
  4436. :chad: /chad/ n. 1. The perforated edge strips on printer paper, after
  4437.    they have been separated from the printed portion.  Also called
  4438.    {selvage} and {perf}.  2. obs. The confetti-like paper bits punched
  4439.    out of cards or paper tape; this was also called `chaff', `computer
  4440.    confetti', and `keypunch droppings'.
  4441.  
  4442.    Historical note: One correspondent believes `chad' (sense 2)
  4443.    derives from the Chadless keypunch (named for its inventor), which
  4444.    cut little u-shaped tabs in the card to make a hole when the tab
  4445.    folded back, rather than punching out a circle/rectangle; it was
  4446.    clear that if the Chadless keypunch didn't make them, then the
  4447.    stuff that other keypunches made had to be `chad'.
  4448.  
  4449. :chad box: n.  boxes inside them, A metal box about the size of a
  4450.    lunchbox (or in some models a large wastebasket), for collecting
  4451.    the {chad} (sense 2) that accumulated in {Iron Age} card
  4452.    punches.  You had to open the covers of the card punch periodically
  4453.    and empty the chad box.  The {bit bucket} was notionally the
  4454.    equivalent device in the CPU enclosure, which was typically across
  4455.    the room in another great gray-and-blue box.
  4456.  
  4457. :chain: 1. [orig. from BASIC's `CHAIN' statement] vi. To hand
  4458.    off execution to a child or successor without going through the
  4459.    {OS} command interpreter that invoked it.  The state of the
  4460.    parent program is lost and there is no returning to it.  Though
  4461.    this facility used to be common on memory-limited micros and is
  4462.    still widely supported for backward compatibility, the jargon usage
  4463.    is semi-obsolescent; in particular, most UNIX programmers will
  4464.    think of this as an {exec}.  Oppose the more modern
  4465.    `subshell'.  2. A series of linked data areas within an
  4466.    operating system or application.  `Chain rattling' is the process
  4467.    of repeatedly running through the linked data areas searching for
  4468.    one which is of interest to the executing program.  The implication
  4469.    is that there is a very large number of links on the chain.
  4470.  
  4471. :channel: [IRC] n. The basic unit of discussion on {IRC}.  Once
  4472.    one joins a channel, everything one types is read by others on that
  4473.    channel.  Channels can either be named with numbers or with strings
  4474.    that begin with a `#' sign and can have topic descriptions (which
  4475.    are generally irrelevant to the actual subject of discussion).
  4476.    Some notable channels are `#initgame', `#hottub', and
  4477.    `#report'.  At times of international crisis, `#report'
  4478.    has hundreds of members, some of whom take turns listening to
  4479.    various news services and typing in summaries of the news, or in
  4480.    some cases, giving first-hand accounts of the action (e.g., Scud
  4481.    missile attacks in Tel Aviv during the Gulf War in 1991).
  4482.    
  4483. :channel hopping: [IRC, GEnie] n. To rapidly switch channels on
  4484.    {IRC}, or a GEnie chat board, just as a social butterfly might hop
  4485.    from one group to another at a party.  This term may derive from the TV
  4486.    watcher's idiom, `channel surfing'.
  4487.  
  4488. :channel op: /chan'l op/ [IRC] n. Someone who is endowed with
  4489.    privileges on a particular {IRC} channel; commonly abbreviated
  4490.    `chanop' or `CHOP'.  These privileges include the right to
  4491.    {kick} users, to change various status bits, and to make others
  4492.    into CHOPs.
  4493.    
  4494. :chanop: /chan'-op/ [IRC] n. See {channel op}.
  4495.  
  4496. :char: /keir/ or /char/; rarely, /kar/ n. Shorthand for
  4497.    `character'.  Esp. used by C programmers, as `char' is
  4498.    C's typename for character data.
  4499.  
  4500. :charityware: /cha'rit-ee-weir`/ n. Syn. {careware}.
  4501.  
  4502. :chase pointers: 1. vi. To go through multiple levels of
  4503.    indirection, as in traversing a linked list or graph structure.
  4504.    Used esp. by programmers in C, where explicit pointers are a very
  4505.    common data type.  This is techspeak, but it remains jargon when
  4506.    used of human networks.  "I'm chasing pointers.  Bob said you
  4507.    could tell me who to talk to about...." See {dangling
  4508.    pointer} and {snap}.  2. [Cambridge] `pointer chase' or
  4509.    `pointer hunt': The process of going through a {core dump}
  4510.    (sense 1), interactively or on a large piece of paper printed with
  4511.    hex {runes}, following dynamic data-structures.  Used only in a
  4512.    debugging context.
  4513.  
  4514. :check: n. A hardware-detected error condition, most commonly used
  4515.    to refer to actual hardware failures rather than software-induced
  4516.    traps.  E.g., a `parity check' is the result of a
  4517.    hardware-detected parity error.  Recorded here because the word
  4518.    often humorously extended to non-technical problems. For example,
  4519.    the term `child check' has been used to refer to the problems
  4520.    caused by a small child who is curious to know what happens when
  4521.    s/he presses all the cute buttons on a computer's console (of
  4522.    course, this particular problem could have been prevented with
  4523.    {molly-guard}s).
  4524.  
  4525. :chemist: [Cambridge] n. Someone who wastes computer time on
  4526.    {number-crunching} when you'd far rather the machine were doing
  4527.    something more productive, such as working out anagrams of your
  4528.    name or printing Snoopy calendars or running {life} patterns.
  4529.    May or may not refer to someone who actually studies chemistry.
  4530.  
  4531. :Chernobyl chicken: n. See {laser chicken}.
  4532.  
  4533. :Chernobyl packet: /cher-noh'b*l pak'*t/ n. A network packet that
  4534.    induces a {broadcast storm} and/or {network meltdown},
  4535.    in memory of the April 1986 nuclear accident at Chernobyl
  4536.    in Ukraine.  The typical scenario involves an IP Ethernet datagram
  4537.    that passes through a gateway with both source and destination
  4538.    Ether and IP address set as the respective broadcast addresses for
  4539.    the subnetworks being gated between.  Compare {Christmas tree
  4540.    packet}.
  4541.  
  4542. :chicken head: [Commodore] n. The Commodore Business Machines logo,
  4543.    which strongly resembles a poultry part.  Rendered in ASCII as
  4544.    `C='.  With the arguable exception of the Amiga (see {amoeba}),
  4545.    Commodore's machines are notoriously crocky little {bitty box}es
  4546.    (see also {PETSCII}).  Thus, this usage may owe something to
  4547.    Philip K. Dick's novel `Do Androids Dream of Electric Sheep?'
  4548.    (the basis for the movie `Blade Runner'; the novel is now sold
  4549.    under that title), in which a `chickenhead' is a mutant with
  4550.    below-average intelligence.
  4551.  
  4552. :chiclet keyboard: n. A keyboard with a small, flat rectangular or
  4553.    lozenge-shaped rubber or plastic keys that look like pieces of
  4554.    chewing gum.  (Chiclets is the brand name of a variety of chewing
  4555.    gum that does in fact resemble the keys of chiclet keyboards.)
  4556.    Used esp. to describe the original IBM PCjr keyboard.  Vendors
  4557.    unanimously liked these because they were cheap, and a lot of early
  4558.    portable and laptop products got launched using them.  Customers
  4559.    rejected the idea with almost equal unanimity, and chiclets are not
  4560.    often seen on anything larger than a digital watch any more.
  4561.  
  4562. :chine nual: /sheen'yu-*l/ [MIT] n.,obs. The LISP Machine Manual, so
  4563.    called because the title was wrapped around the cover so only those
  4564.    letters showed on the front.
  4565.  
  4566. :Chinese Army technique: n. Syn. {Mongolian Hordes technique}.
  4567.  
  4568. :choke: v. 1. To reject input, often ungracefully.  "NULs make System
  4569.    V's `lpr(1)' choke."  "I tried building an {EMACS} binary to
  4570.    use {X}, but `cpp(1)' choked on all those `#define's."
  4571.    See {barf}, {gag}, {vi}.   2. [MIT] More generally, to fail at any
  4572.    endeavor, but with some flair or bravado; the popular definition is
  4573.    "to snatch defeat from the jaws of victory."
  4574.  
  4575. :chomp: vi. To {lose}; specifically, to chew on something of
  4576.    which more was bitten off than one can.  Probably related to
  4577.    gnashing of teeth.  See {bagbiter}.
  4578.  
  4579.    A hand gesture commonly accompanies this.  To perform it, hold the
  4580.    four fingers together and place the thumb against their tips.  Now
  4581.    open and close your hand rapidly to suggest a biting action (much
  4582.    like what Pac-Man does in the classic video game, though this
  4583.    pantomime seems to predate that).  The gesture alone means `chomp
  4584.    chomp' (see "{Verb Doubling}" in the "{Jargon
  4585.    Construction}" section of the Prependices).  The hand may be
  4586.    pointed at the object of complaint, and for real emphasis you can
  4587.    use both hands at once.  Doing this to a person is equivalent to
  4588.    saying "You chomper!"  If you point the gesture at yourself, it
  4589.    is a humble but humorous admission of some failure.  You might do
  4590.    this if someone told you that a program you had written had failed
  4591.    in some surprising way and you felt dumb for not having anticipated
  4592.    it.
  4593.  
  4594. :chomper: n. Someone or something that is chomping; a loser.  See
  4595.    {loser}, {bagbiter}, {chomp}.
  4596.  
  4597. :CHOP: /chop/ [IRC] n. See {channel op}.
  4598.  
  4599. :Christmas tree: n. A kind of RS-232 line tester or breakout box
  4600.    featuring rows of blinking red and green LEDs suggestive of
  4601.    Christmas lights.
  4602.  
  4603. :Christmas tree packet: n. A packet with every single option set for
  4604.    whatever protocol is in use.  See {kamikaze packet}, {Chernobyl
  4605.    packet}.  (The term doubtless derives from a fanciful image of each
  4606.    little option bit being represented by a different-colored light
  4607.    bulb, all turned on.)
  4608.  
  4609. :chrome: [from automotive slang via wargaming] n. Showy features
  4610.    added to attract users but contributing little or nothing to
  4611.    the power of a system.  "The 3D icons in Motif are just chrome,
  4612.    but they certainly are *pretty* chrome!"  Distinguished from
  4613.    {bells and whistles} by the fact that the latter are usually
  4614.    added to gratify developers' own desires for featurefulness. 
  4615.    Often used as a term of contempt.
  4616.  
  4617. :chug: vi. To run slowly; to {grind} or {grovel}.  "The disk is
  4618.    chugging like crazy."
  4619.  
  4620. :Church of the SubGenius: n. A mutant offshoot of
  4621.    {Discordianism} launched in 1981 as a spoof of fundamentalist
  4622.    Christianity by the `Reverend' Ivan Stang, a brilliant satirist
  4623.    with a gift for promotion.  Popular among hackers as a rich source
  4624.    of bizarre imagery and references such as "Bob" the divine
  4625.    drilling-equipment salesman, the Benevolent Space Xists, and the
  4626.    Stark Fist of Removal.  Much SubGenius theory is concerned with the
  4627.    acquisition of the mystical substance or quality of {slack}.
  4628.  
  4629. :Cinderella Book: [CMU] n. `Introduction to Automata Theory,
  4630.    Languages, and Computation', by John Hopcroft and Jeffrey Ullman,
  4631.    (Addison-Wesley, 1979).  So called because the cover depicts a girl
  4632.    (putatively Cinderella) sitting in front of a Rube Goldberg device
  4633.    and holding a rope coming out of it.  On the back cover, the device
  4634.    is in shambles after she has (inevitably) pulled on the rope.  See
  4635.    also {{book titles}}.
  4636.  
  4637. :CI$: // n. Hackerism for `CIS', CompuServe Information Service.
  4638.    The dollar sign refers to CompuServe's rather steep line charges.
  4639.    Often used in {sig block}s just before a CompuServe address.
  4640.    Syn. {Compu$erve}.
  4641.  
  4642. :Classic C: /klas'ik C/ [a play on `Coke Classic'] n. The
  4643.    C programming language as defined in the first edition of {K&R},
  4644.    with some small additions.  It is also known as `K&R C'.  The name
  4645.    came into use while C was being standardized by the ANSI X3J11
  4646.    committee.  Also `C Classic'.
  4647.  
  4648.    An analogous construction is sometimes applied elsewhere: thus,
  4649.    `X Classic', where X = Star Trek (referring to the original TV
  4650.    series) or X = PC (referring to IBM's ISA-bus machines as opposed
  4651.    to the PS/2 series).  This construction is especially used of
  4652.    product series in which the newer versions are considered serious
  4653.    losers relative to the older ones.
  4654.  
  4655. :clean: 1. adj. Used of hardware or software designs, implies
  4656.    `elegance in the small', that is, a design or implementation that
  4657.    may not hold any surprises but does things in a way that is
  4658.    reasonably intuitive and relatively easy to comprehend from the
  4659.    outside.  The antonym is `grungy' or {crufty}.  2. v. To remove
  4660.    unneeded or undesired files in a effort to reduce clutter:  "I'm
  4661.    cleaning up my account."  "I cleaned up the garbage and now have
  4662.    100 Meg free on that partition."
  4663.  
  4664. :CLM: /C-L-M/ [Sun: `Career Limiting Move'] 1. n. An action
  4665.    endangering one's future prospects of getting plum projects and
  4666.    raises, and possibly one's job:  "His Halloween costume was a
  4667.    parody of his manager.  He won the prize for `best CLM'."
  4668.    2. adj.  Denotes extreme severity of a bug, discovered by a
  4669.    customer and obviously missed earlier because of poor testing:
  4670.    "That's a CLM bug!"
  4671.  
  4672. :clobber: vt. To overwrite, usually unintentionally: "I walked off
  4673.    the end of the array and clobbered the stack."  Compare {mung},
  4674.    {scribble}, {trash}, and {smash the stack}.
  4675.  
  4676. :clocks: n. Processor logic cycles, so called because each
  4677.    generally corresponds to one clock pulse in the processor's timing.
  4678.    The relative execution times of instructions on a machine are
  4679.    usually discussed in clocks rather than absolute fractions of a
  4680.    second; one good reason for this is that clock speeds for various
  4681.    models of the machine may increase as technology improves, and it
  4682.    is usually the relative times one is interested in when discussing
  4683.    the instruction set.  Compare {cycle}.
  4684.  
  4685. :clone: n. 1. An exact duplicate: "Our product is a clone of
  4686.    their product."  Implies a legal reimplementation from
  4687.    documentation or by reverse-engineering.  Also connotes lower
  4688.    price.  2. A shoddy, spurious copy: "Their product is a
  4689.    clone of our product."  3. A blatant ripoff, most likely violating
  4690.    copyright, patent, or trade secret protections: "Your
  4691.    product is a clone of my product."  This use implies legal
  4692.    action is pending.  4. `PC clone:' a PC-BUS/ISA or
  4693.    EISA-compatible 80x86-based microcomputer (this use is sometimes
  4694.    spelled `klone' or `PClone').  These invariably have much
  4695.    more bang for the buck than the IBM archetypes they resemble.
  4696.    5. In the construction `UNIX clone': An OS designed to deliver
  4697.    a UNIX-lookalike environment without UNIX license fees, or with
  4698.    additional `mission-critical' features such as support for
  4699.    real-time programming.  6. v. To make an exact copy of something.
  4700.    "Let me clone that" might mean "I want to borrow that paper so I
  4701.    can make a photocopy" or "Let me get a copy of that file before
  4702.    you {mung} it".
  4703.  
  4704. :clover key: [Mac users] n. See {feature key}.
  4705.  
  4706. :clustergeeking: /kluh'st*r-gee`king/ [CMU] n. Spending more time
  4707.    at a computer cluster doing CS homework than most people spend
  4708.    breathing.
  4709.  
  4710. :COBOL: /koh'bol/ [COmmon Business-Oriented Language] n.
  4711.    (Synonymous with {evil}.)  A weak, verbose, and flabby language
  4712.    used by {card walloper}s to do boring mindless things on
  4713.    {dinosaur} mainframes.  Hackers believe that all COBOL
  4714.    programmers are {suit}s or {code grinder}s, and no
  4715.    self-respecting hacker will ever admit to having learned the
  4716.    language.  Its very name is seldom uttered without ritual
  4717.    expressions of disgust or horror.  See also {fear and loathing},
  4718.    {software rot}.
  4719.  
  4720. :COBOL fingers: /koh'bol fing'grz/ n. Reported from Sweden, a
  4721.    (hypothetical) disease one might get from coding in COBOL.  The
  4722.    language requires code verbose beyond all reason (see
  4723.    {candygrammar}); thus it is alleged that programming too much in
  4724.    COBOL causes one's fingers to wear down to stubs by the endless
  4725.    typing.  "I refuse to type in all that source code again; it would
  4726.    give me COBOL fingers!"
  4727.  
  4728. :code grinder: n. 1. A {suit}-wearing minion of the sort hired in
  4729.    legion strength by banks and insurance companies to implement
  4730.    payroll packages in RPG and other such unspeakable horrors.  In its
  4731.    native habitat, the code grinder often removes the suit jacket to
  4732.    reveal an underplumage consisting of button-down shirt (starch
  4733.    optional) and a tie.  In times of dire stress, the sleeves (if
  4734.    long) may be rolled up and the tie loosened about half an inch.  It
  4735.    seldom helps.  The {code grinder}'s milieu is about as far from
  4736.    hackerdom as one can get and still touch a computer; the term
  4737.    connotes pity.  See {Real World}, {suit}.  2. Used of or to a
  4738.    hacker, a really serious slur on the person's creative ability;
  4739.    connotes a design style characterized by primitive technique,
  4740.    rule-boundedness, {brute force}, and utter lack of imagination.
  4741.    Compare {card walloper}; contrast {hacker}, {real
  4742.    programmer}.
  4743.  
  4744. :code police: [by analogy with George Orwell's `thought police'] n.
  4745.    A mythical team of Gestapo-like storm troopers that might burst
  4746.    into one's office and arrest one for violating programming style
  4747.    rules.  May be used either seriously, to underline a claim that a
  4748.    particular style violation is dangerous, or ironically, to suggest
  4749.    that the practice under discussion is condemned mainly by
  4750.    anal-retentive {weenie}s.  "Dike out that goto or the code
  4751.    police will get you!"  The ironic usage is perhaps more common.
  4752.  
  4753. :codewalker: n. A program component that traverses other programs for
  4754.    a living.  Compilers have codewalkers in their front ends; so do
  4755.    cross-reference generators and some database front ends.  Other
  4756.    utility programs that try to do too much with source code may turn
  4757.    into codewalkers.  As in "This new `vgrind' feature would require a
  4758.    codewalker to implement."
  4759.  
  4760. :coefficient of X: n. Hackish speech makes heavy use of
  4761.    pseudo-math-ema-tic-al metaphors.  Four particularly important
  4762.    ones involve the terms `coefficient', `factor', `index', and
  4763.    `quotient'.  They are often loosely applied to things you cannot
  4764.    really be quantitative about, but there are subtle distinctions
  4765.    among them that convey information about the way the speaker
  4766.    mentally models whatever he or she is describing.
  4767.  
  4768.    `Foo factor' and `foo quotient' tend to describe something for
  4769.    which the issue is one of presence or absence.  The canonical
  4770.    example is {fudge factor}.  It's not important how much you're
  4771.    fudging; the term simply acknowledges that some fudging is needed.
  4772.    You might talk of liking a movie for its silliness factor.
  4773.    Quotient tends to imply that the property is a ratio of two
  4774.    opposing factors: "I would have won except for my luck quotient."
  4775.    This could also be "I would have won except for the luck factor",
  4776.    but using *quotient* emphasizes that it was bad luck
  4777.    overpowering good luck (or someone else's good luck overpowering
  4778.    your own).
  4779.  
  4780.    `Foo index' and `coefficient of foo' both tend to imply
  4781.    that foo is, if not strictly measurable, at least something that
  4782.    can be larger or smaller.  Thus, you might refer to a paper or
  4783.    person as having a `high bogosity index', whereas you would be less
  4784.    likely to speak of a `high bogosity factor'.  `Foo index' suggests
  4785.    that foo is a condensation of many quantities, as in the mundane
  4786.    cost-of-living index; `coefficient of foo' suggests that foo is a
  4787.    fundamental quantity, as in a coefficient of friction.  The choice
  4788.    between these terms is often one of personal preference; e.g., some
  4789.    people might feel that bogosity is a fundamental attribute and thus
  4790.    say `coefficient of bogosity', whereas others might feel it is a
  4791.    combination of factors and thus say `bogosity index'.
  4792.  
  4793. :cokebottle: /kohk'bot-l/ n. Any very unusual character,
  4794.    particularly one you can't type because it it isn't on your
  4795.    keyboard.  MIT people used to complain about the
  4796.    `control-meta-cokebottle' commands at SAIL, and SAIL people
  4797.    complained right back about the `{altmode}-altmode-cokebottle'
  4798.    commands at MIT.  After the demise of the {space-cadet
  4799.    keyboard}, `cokebottle' faded away as serious usage, but was
  4800.    often invoked humorously to describe an (unspecified) weird or
  4801.    non-intuitive keystroke command.  It may be due for a second
  4802.    inning, however.  The OSF/Motif window manager, `mwm(1)', has
  4803.    a reserved keystroke for switching to the default set of
  4804.    keybindings and behavior.  This keystroke is (believe it or not)
  4805.    `control-meta-bang' (see {bang}).  Since the exclamation point
  4806.    looks a lot like an upside down Coke bottle, Motif hackers have
  4807.    begun referring to this keystroke as `cokebottle'.  See also
  4808.    {quadruple bucky}.
  4809.  
  4810. :cold boot: n. See {boot}.
  4811.  
  4812. :COME FROM: n. A semi-mythical language construct dual to the `go
  4813.    to'; `COME FROM' <label> would cause the referenced label to
  4814.    act as a sort of trapdoor, so that if the program ever reached it
  4815.    control would quietly and {automagically} be transferred to the
  4816.    statement following the `COME FROM'.  `COME FROM' was
  4817.    first proposed in R.L. Clark's `A Linguistic Contribution to
  4818.    GOTO-less programming', which appeared in a 1973 {Datamation}
  4819.    issue (and was reprinted in the April 1984 issue of
  4820.    `Communications of the ACM').  This parodied the then-raging
  4821.    `structured programming' {holy wars} (see {considered
  4822.    harmful}).  Mythically, some variants are the `assigned COME
  4823.    FROM' and the `computed COME FROM' (parodying some nasty control
  4824.    constructs in FORTRAN and some extended BASICs).  Of course,
  4825.    multi-tasking (or non-determinism) could be implemented by having
  4826.    more than one `COME FROM' statement coming from the same
  4827.    label.
  4828.  
  4829.    In some ways the FORTRAN `DO' looks like a `COME FROM'
  4830.    statement.  After the terminating statement number/`CONTINUE'
  4831.    is reached, control continues at the statement following the DO.
  4832.    Some generous FORTRANs would allow arbitrary statements (other than
  4833.    `CONTINUE') for the statement, leading to examples like:
  4834.  
  4835.            DO 10 I=1,LIMIT
  4836.      C imagine many lines of code here, leaving the
  4837.      C original DO statement lost in the spaghetti...
  4838.            WRITE(6,10) I,FROB(I)
  4839.       10   FORMAT(1X,I5,G10.4)
  4840.  
  4841.    in which the trapdoor is just after the statement labeled 10.
  4842.    (This is particularly surprising because the label doesn't appear
  4843.    to have anything to do with the flow of control at all!)
  4844.  
  4845.    While sufficiently astonishing to the unsuspecting reader, this
  4846.    form of `COME FROM' statement isn't completely general.  After
  4847.    all, control will eventually pass to the following statement.  The
  4848.    implementation of the general form was left to Univac FORTRAN,
  4849.    ca. 1975 (though a roughly similar feature existed on the IBM 7040
  4850.    ten years earlier).  The statement `AT 100' would perform a
  4851.    `COME FROM 100'.  It was intended strictly as a debugging aid,
  4852.    with dire consequences promised to anyone so deranged as to use it
  4853.    in production code.  More horrible things had already been
  4854.    perpetrated in production languages, however; doubters need only
  4855.    contemplate the `ALTER' verb in {COBOL}.
  4856.  
  4857.    `COME FROM' was supported under its own name for the first
  4858.    time 15 years later, in C-INTERCAL (see {INTERCAL},
  4859.    {retrocomputing}); knowledgeable observers are still reeling
  4860.    from the shock.
  4861.  
  4862. :comm mode: /kom mohd/ [ITS: from the feature supporting on-line
  4863.    chat; the term may spelled with one or two m's] Syn. for {talk
  4864.    mode}.
  4865.  
  4866. :command key: [Mac users] n. Syn. {feature key}.
  4867.  
  4868. :comment out: vt. To surround a section of code with comment
  4869.    delimiters or to prefix every line in the section with a comment
  4870.    marker; this prevents it from being compiled or interpreted.  Often
  4871.    done when the code is redundant or obsolete, but is being left in
  4872.    the source to make the intent of the active code clearer; also when
  4873.    the code in that section is broken and you want to bypass it in
  4874.    order to debug some other part of the code.  Compare
  4875.    {condition out}, usually the preferred technique in languages
  4876.    (such as {C}) that make it possible.
  4877.  
  4878. :Commonwealth Hackish:: n. Hacker jargon as spoken outside
  4879.    the U.S., esp. in the British Commonwealth.  It is reported that
  4880.    Commonwealth speakers are more likely to pronounce truncations like
  4881.    `char' and `soc', etc., as spelled (/char/, /sok/), as
  4882.    opposed to American /keir/ and /sohsh/.  Dots in {newsgroup}
  4883.    names tend to be pronounced more often (so soc.wibble is /sok dot
  4884.    wib'l/ rather than /sohsh wib'l/).  The prefix {meta} may be
  4885.    pronounced /mee't*/; similarly, Greek letter beta is usually
  4886.    /bee't*/, zeta is usually /zee't*/, and so forth.  Preferred
  4887.    {metasyntactic variable}s include {blurgle}, `eek',
  4888.    `ook', `frodo', and `bilbo'; `wibble',
  4889.    `wobble', and in emergencies `wubble'; `banana',
  4890.    `tom', `dick', `harry', `wombat', `frog',
  4891.    {fish}, and so on and on (see {foo}, sense 4).
  4892.  
  4893.    Alternatives to verb doubling include suffixes `-o-rama',
  4894.    `frenzy' (as in feeding frenzy), and `city' (examples: "barf
  4895.    city!"  "hack-o-rama!"  "core dump frenzy!").  Finally, note
  4896.    that the American terms `parens', `brackets', and `braces' for (),
  4897.    [], and {} are uncommon; Commonwealth hackish prefers
  4898.    `brackets', `square brackets', and `curly brackets'.  Also, the
  4899.    use of `pling' for {bang} is common outside the United States.
  4900.  
  4901.    See also {attoparsec}, {calculator}, {chemist},
  4902.    {console jockey}, {fish}, {go-faster stripes},
  4903.    {grunge}, {hakspek}, {heavy metal}, {leaky heap},
  4904.    {lord high fixer}, {loose bytes}, {muddie}, {nadger},
  4905.    {noddy}, {psychedelicware}, {plingnet}, {raster
  4906.    blaster}, {RTBM}, {seggie}, {spod}, {sun lounge},
  4907.    {terminal junkie}, {tick-list features}, {weeble},
  4908.    {weasel}, {YABA}, and notes or definitions under {Bad
  4909.    Thing}, {barf}, {bogus}, {bum}, {chase pointers},
  4910.    {cosmic rays}, {crippleware}, {crunch}, {dodgy},
  4911.    {gonk}, {hamster}, {hardwarily}, {mess-dos},
  4912.    {nybble}, {proglet}, {root}, {SEX}, {tweak}, and
  4913.    {xyzzy}.
  4914.  
  4915. :compact: adj. Of a design, describes the valuable property that it
  4916.    can all be apprehended at once in one's head.  This generally means
  4917.    the thing created from the design can be used with greater facility
  4918.    and fewer errors than an equivalent tool that is not compact.
  4919.    Compactness does not imply triviality or lack of power; for
  4920.    example, C is compact and FORTRAN is not, but C is more powerful
  4921.    than FORTRAN.  Designs become non-compact through accreting
  4922.    {feature}s and {cruft} that don't merge cleanly into the
  4923.    overall design scheme (thus, some fans of {Classic C} maintain
  4924.    that ANSI C is no longer compact).
  4925.  
  4926. :compiler jock: n. See {jock} (sense 2).
  4927.  
  4928. :compress: [UNIX] vt. When used without a qualifier, generally
  4929.    refers to {crunch}ing of a file using a particular
  4930.    C implementation of compression by James A. Woods et al. and
  4931.    widely circulated via {USENET}; use of {crunch} itself in
  4932.    this sense is rare among UNIX hackers.  Specifically, compress is
  4933.    built around the Lempel-Ziv-Welch algorithm as described in "A
  4934.    Technique for High Performance Data Compression", Terry A. Welch,
  4935.    `IEEE Computer', vol. 17, no. 6 (June 1984), pp. 8--19.
  4936.  
  4937. :Compu$erve: n. See {CI$}.  Synonyms CompuSpend and
  4938.    Compu$pend are also reported.
  4939.  
  4940. :computer confetti: n. Syn. {chad}.  Though this term is common,
  4941.    this use of punched-card chad is not a good idea, as the pieces are
  4942.    stiff and have sharp corners that could injure the eyes.  GLS
  4943.    reports that he once attended a wedding at MIT during which he and
  4944.    a few other guests enthusiastically threw chad instead of rice. The
  4945.    groom later grumbled that he and his bride had spent most of the
  4946.    evening trying to get the stuff out of their hair.
  4947.  
  4948. :computer geek: n. One who eats (computer) bugs for a living.  One
  4949.    who fulfills all the dreariest negative stereotypes about hackers:
  4950.    an asocial, malodorous, pasty-faced monomaniac with all the
  4951.    personality of a cheese grater.  Cannot be used by outsiders
  4952.    without implied insult to all hackers; compare black-on-black usage
  4953.    of `nigger'.  A computer geek may be either a fundamentally
  4954.    clueless individual or a proto-hacker in {larval stage}.  Also
  4955.    called `turbo nerd', `turbo geek'.  See also {propeller head},
  4956.    {clustergeeking}, {geek out}, {wannabee}, {terminal
  4957.    junkie}, {spod}, {weenie}.
  4958.  
  4959. :computron: /kom'pyoo-tron`/ n. 1. A notional unit of computing
  4960.    power combining instruction speed and storage capacity, dimensioned
  4961.    roughly in instructions-per-second times megabytes-of-main-store
  4962.    times megabytes-of-mass-storage.  "That machine can't run GNU
  4963.    EMACS, it doesn't have enough computrons!"  This usage is usually
  4964.    found in metaphors that treat computing power as a fungible
  4965.    commodity good, like a crop yield or diesel horsepower.  See
  4966.    {bitty box}, {Get a real computer!}, {toy}, {crank}.
  4967.    2. A mythical subatomic particle that bears the unit quantity of
  4968.    computation or information, in much the same way that an electron
  4969.    bears one unit of electric charge (see also {bogon}).  An
  4970.    elaborate pseudo-scientific theory of computrons has been developed
  4971.    based on the physical fact that the molecules in a solid object
  4972.    move more rapidly as it is heated.  It is argued that an object
  4973.    melts because the molecules have lost their information about where
  4974.    they are supposed to be (that is, they have emitted computrons).
  4975.    This explains why computers get so hot and require air
  4976.    conditioning; they use up computrons.  Conversely, it should be
  4977.    possible to cool down an object by placing it in the path of a
  4978.    computron beam.  It is believed that this may also explain why
  4979.    machines that work at the factory fail in the computer room: the
  4980.    computrons there have been all used up by the other hardware.
  4981.    (This theory probably owes something to the "Warlock" stories
  4982.    by Larry Niven, the best known being "What Good is a Glass
  4983.    Dagger?", in which magic is fueled by an exhaustible natural
  4984.    resource called `mana'.)
  4985.  
  4986. :con: [from SF fandom] n. A science-fiction convention.  Not used
  4987.    of other sorts of conventions, such as professional meetings.  This
  4988.    term, unlike many others of SF-fan slang, is widely recognized even
  4989.    by hackers who aren't {fan}s. "We'd been corresponding on the
  4990.    net for months, then we met face-to-face at a con." .
  4991.  
  4992. :condition out: vt. To prevent a section of code from being
  4993.    compiled by surrounding it with a conditional-compilation directive
  4994.    whose condition is always false.  The {canonical} examples of
  4995.    these directives are `#if 0' (or `#ifdef notdef', though
  4996.    some find the latter {bletcherous}) and `#endif' in C.
  4997.    Compare {comment out}.
  4998.  
  4999. :condom: n. 1. The protective plastic bag that accompanies 3.5-inch
  5000.    microfloppy diskettes.  Rarely, also used of (paper) disk
  5001.    envelopes.  Unlike the write protect tab, the condom (when left on)
  5002.    not only impedes the practice of {SEX} but has also been shown
  5003.    to have a high failure rate as drive mechanisms attempt to access
  5004.    the disk --- and can even fatally frustrate insertion.  2. The
  5005.    protective cladding on a {light pipe}.  3. `keyboard condom':
  5006.    A flexible, transparent plastic cover for a keyboard, designed to
  5007.    provide some protection against dust and {programming fluid} without
  5008.    impeding typing.
  5009.  
  5010. :confuser: n. Common soundalike slang for `computer'.  Usually
  5011.    encountered in compounds such as `confuser room', `personal
  5012.    confuser', `confuser guru'.  Usage: silly.
  5013.  
  5014. :connector conspiracy: [probably came into prominence with the
  5015.    appearance of the KL-10 (one model of the {PDP-10}), none of
  5016.    whose connectors matched anything else] n. The tendency of
  5017.    manufacturers (or, by extension, programmers or purveyors of
  5018.    anything) to come up with new products that don't fit together with
  5019.    the old stuff, thereby making you buy either all new stuff or
  5020.    expensive interface devices.  The KL-10 Massbus connector was
  5021.    actually *patented* by DEC, which reputedly refused to license
  5022.    the design and thus effectively locked third parties out of
  5023.    competition for the lucrative Massbus peripherals market.  This
  5024.    policy is a source of never-ending frustration for the diehards who
  5025.    maintain older PDP-10 or VAX systems.  Their CPUs work fine, but
  5026.    they are stuck with dying, obsolescent disk and tape drives with
  5027.    low capacity and high power requirements.
  5028.  
  5029.    (A closely related phenomenon, with a slightly different intent, is
  5030.    the habit manufacturers have of inventing new screw heads so that
  5031.    only Designated Persons, possessing the magic screwdrivers, can
  5032.    remove covers and make repairs or install options.  The Apple
  5033.    Macintosh takes this one step further, requiring not only a hex
  5034.    wrench but a specialized case-cracking tool to open the box.)
  5035.  
  5036.    In these latter days of open-systems computing this term has fallen
  5037.    somewhat into disuse, to be replaced by the observation that
  5038.    "Standards are great!  There are so *many* of them to choose
  5039.    from!"  Compare {backward combatability}.
  5040.  
  5041. :cons: /konz/ or /kons/ [from LISP] 1. vt. To add a new element
  5042.    to a specified list, esp. at the top.  "OK, cons picking a
  5043.    replacement for the console TTY onto the agenda."  2. `cons up':
  5044.    vt. To synthesize from smaller pieces: "to cons up an example".
  5045.  
  5046.    In LISP itself, `cons' is the most fundamental operation for
  5047.    building structures.  It takes any two objects and returns a
  5048.    `dot-pair' or two-branched tree with one object hanging from each
  5049.    branch.  Because the result of a cons is an object, it can be used
  5050.    to build binary trees of any shape and complexity.  Hackers think
  5051.    of it as a sort of universal constructor, and that is where the
  5052.    jargon meanings spring from.
  5053.  
  5054. :considered harmful: adj. Edsger W. Dijkstra's note in the
  5055.    March 1968 `Communications of the ACM', "Goto Statement
  5056.    Considered Harmful", fired the first salvo in the structured
  5057.    programming wars.  Amusingly, the ACM considered the resulting
  5058.    acrimony sufficiently harmful that it will (by policy) no longer
  5059.    print an article taking so assertive a position against a coding
  5060.    practice.  In the ensuing decades, a large number of both serious
  5061.    papers and parodies have borne titles of the form "X
  5062.    considered Y".  The structured-programming wars eventually blew
  5063.    over with the realization that both sides were wrong, but use of
  5064.    such titles has remained as a persistent minor in-joke (the
  5065.    `considered silly' found at various places in this lexicon is
  5066.    related).
  5067.  
  5068. :console:: n. 1. The operator's station of a {mainframe}.  In
  5069.    times past, this was a privileged location that conveyed godlike
  5070.    powers to anyone with fingers on its keys.  Under UNIX and other
  5071.    modern timesharing OSes, such privileges are guarded by passwords
  5072.    instead, and the console is just the {tty} the system was booted
  5073.    from.  Some of the mystique remains, however, and it is traditional
  5074.    for sysadmins to post urgent messages to all users from the console
  5075.    (on UNIX, /dev/console).  2. On microcomputer UNIX boxes, the main
  5076.    screen and keyboard (as opposed to character-only terminals talking
  5077.    to a serial port).  Typically only the console can do real graphics
  5078.    or run {X}.  See also {CTY}.
  5079.  
  5080. :console jockey: n. See {terminal junkie}.
  5081.  
  5082. :content-free: [by analogy with techspeak `context-free'] adj.
  5083.    Used of a message that adds nothing to the recipient's knowledge.
  5084.    Though this adjective is sometimes applied to {flamage}, it more
  5085.    usually connotes derision for communication styles that exalt form
  5086.    over substance or are centered on concerns irrelevant to the
  5087.    subject ostensibly at hand.  Perhaps most used with reference to
  5088.    speeches by company presidents and other professional manipulators.
  5089.    "Content-free?  Uh... that's anything printed on glossy
  5090.    paper."  (See also {four-color glossies}.)  "He gave a talk on
  5091.    the implications of electronic networks for postmodernism and the
  5092.    fin-de-siecle aesthetic.  It was content-free."
  5093.  
  5094. :control-C: vi. 1. "Stop whatever you are doing."  From the
  5095.    interrupt character used on many operating systems to abort a
  5096.    running program.  Considered silly.  2. interj. Among BSD UNIX
  5097.    hackers, the canonical humorous response to "Give me a break!"
  5098.  
  5099. :control-O: vi. "Stop talking."  From the character used on some
  5100.    operating systems to abort output but allow the program to keep on
  5101.    running.  Generally means that you are not interested in hearing
  5102.    anything more from that person, at least on that topic; a standard
  5103.    response to someone who is flaming.  Considered silly.  Compare
  5104.    {control-S}.
  5105.  
  5106. :control-Q: vi. "Resume."  From the ASCII DC1 or {XON}
  5107.    character (the pronunciation /X-on/ is therefore also used), used
  5108.    to undo a previous {control-S}.
  5109.  
  5110. :control-S: vi. "Stop talking for a second."  From the ASCII DC3
  5111.    or XOFF character (the pronunciation /X-of/ is therefore also
  5112.    used).  Control-S differs from {control-O} in that the person is
  5113.    asked to stop talking (perhaps because you are on the phone) but
  5114.    will be allowed to continue when you're ready to listen to him ---
  5115.    as opposed to control-O, which has more of the meaning of
  5116.    "Shut up."  Considered silly.
  5117.  
  5118. :Conway's Law: prov. The rule that the organization of the software and
  5119.    the organization of the software team will be congruent; originally
  5120.    stated as "If you have four groups working on a compiler, you'll
  5121.    get a 4-pass compiler".
  5122.  
  5123.    Melvin Conway, an early proto-hacker who wrote an assembler for the
  5124.    Burroughs 220 called SAVE.  The name `SAVE' didn't stand for
  5125.    anything; it was just that you lost fewer card decks and listings
  5126.    because they all had SAVE written on them.
  5127.  
  5128. :cookbook: [from amateur electronics and radio] n. A book of small
  5129.    code segments that the reader can use to do various {magic}
  5130.    things in programs.  One current example is the
  5131.    `{{PostScript}} Language Tutorial and Cookbook' by Adobe
  5132.    Systems, Inc (Addison-Wesley, ISBN 0-201-10179-3), also known as
  5133.    the {Blue Book} which has recipes for things like wrapping text
  5134.    around arbitrary curves and making 3D fonts.  Cookbooks, slavishly
  5135.    followed, can lead one into {voodoo programming}, but are useful
  5136.    for hackers trying to {monkey up} small programs in unknown
  5137.    languages.  This function is analogous to the role of phrasebooks
  5138.    in human languages.
  5139.  
  5140. :cooked mode: [UNIX, by opposition with {raw mode}] n. The
  5141.    normal character-input mode, with interrupts enabled and with
  5142.    erase, kill and other special-character interpretations performed
  5143.    directly by the tty driver.  Oppose {raw mode}, {rare mode}.
  5144.    This term is techspeak under UNIX but jargon elsewhere; other
  5145.    operating systems often have similar mode distinctions, and the
  5146.    raw/rare/cooked way of describing them has spread widely along with
  5147.    the C language and other UNIX exports.  Most generally, `cooked
  5148.    mode' may refer to any mode of a system that does extensive
  5149.    preprocessing before presenting data to a program.
  5150.  
  5151. :cookie: n. A handle, transaction ID, or other token of agreement
  5152.    between cooperating programs.  "I give him a packet, he gives me
  5153.    back a cookie."  The claim check you get from a dry-cleaning shop
  5154.    is a perfect mundane example of a cookie; the only thing it's
  5155.    useful for is to relate a later transaction to this one (so you get
  5156.    the same clothes back).  Compare {magic cookie}; see also
  5157.    {fortune cookie}.
  5158.  
  5159. :cookie bear: n. Syn. {cookie monster}.
  5160.  
  5161. :cookie file: n. A collection of {fortune cookie}s in a format
  5162.    that facilitates retrieval by a fortune program.  There are several
  5163.    different cookie files in public distribution, and site admins
  5164.    often assemble their own from various sources including this
  5165.    lexicon.
  5166.  
  5167. :cookie jar: n. An area of memory set aside for storing {cookie}s.
  5168.    Most commonly heard in the Atari ST community; many useful ST
  5169.    programs record their presence by storing a distinctive {magic
  5170.    number} in the jar.  Programs can inquire after the presence or
  5171.    otherwise of other programs by searching the contents of the jar.
  5172.  
  5173. :cookie monster: [from the children's TV program "Sesame
  5174.    Street"] n. Any of a family of early (1970s) hacks reported on
  5175.    {{TOPS-10}}, {{ITS}}, {{Multics}}, and elsewhere that would lock
  5176.    up either the victim's terminal (on a time-sharing machine) or the
  5177.    {{console}} (on a batch {mainframe}), repeatedly demanding "I
  5178.    WANT A COOKIE".  The required responses ranged in complexity from
  5179.    "COOKIE" through "HAVE A COOKIE" and upward.  See also
  5180.    {wabbit}.
  5181.  
  5182. :copious free time: [Apple; orig. fr. the intro to Tom Lehrer's
  5183.    song "It Makes A Fellow Proud To Be A Soldier"] n. 1. [used
  5184.    ironically to indicate the speaker's lack of the quantity in
  5185.    question] A mythical schedule slot for accomplishing tasks held to
  5186.    be unlikely or impossible.  Sometimes used to indicate that the
  5187.    speaker is interested in accomplishing the task, but believes that
  5188.    the opportunity will not arise.  "I'll implement the automatic
  5189.    layout stuff in my copious free time."  2. [Archly] Time reserved
  5190.    for bogus or otherwise idiotic tasks, such as implementation of
  5191.    {chrome}, or the stroking of {suit}s.  "I'll get back to him
  5192.    on that feature in my copious free time."
  5193.  
  5194. :copper: n. Conventional electron-carrying network cable with a
  5195.    core conductor of copper --- or aluminum!  Opposed to {light
  5196.    pipe} or, say, a short-range microwave link.
  5197.  
  5198. :copy protection: n. A class of methods for preventing incompetent
  5199.    pirates from stealing software and legitimate customers from using
  5200.    it.  Considered silly.
  5201.  
  5202. :copybroke: /ko'pee-brohk/ adj. 1. [play on `copyright'] Used
  5203.    to describe an instance of a copy-protected program that has been
  5204.    `broken'; that is, a copy with the copy-protection scheme
  5205.    disabled.  Syn.  {copywronged}.  2. Copy-protected software
  5206.    which is unusable because of some bit-rot or bug that has confused
  5207.    the anti-piracy check.  See also {copy protection}.
  5208.  
  5209. :copyleft: /kop'ee-left/ [play on `copyright'] n. 1. The
  5210.    copyright notice (`General Public License') carried by {GNU}
  5211.    {EMACS} and other Free Software Foundation software, granting reuse
  5212.    and reproduction rights to all comers (but see also {General
  5213.    Public Virus}).  2. By extension, any copyright notice intended to
  5214.    achieve similar aims.
  5215.  
  5216. :copywronged: /ko'pee-rongd/ [play on `copyright'] adj. Syn. for
  5217.    {copybroke}.
  5218.  
  5219. :core: n. Main storage or RAM.  Dates from the days of
  5220.    ferrite-core memory; now archaic as techspeak most places outside
  5221.    IBM, but also still used in the UNIX community and by old-time
  5222.    hackers or those who would sound like them.  Some derived idioms
  5223.    are quite current; `in core', for example, means `in memory'
  5224.    (as opposed to `on disk'), and both {core dump} and the `core
  5225.    image' or `core file' produced by one are terms in favor.  Some
  5226.    varieties of Commonwealth hackish prefer {store}.
  5227.  
  5228. :core cancer: n. A process that exhibits a slow but inexorable
  5229.    resource {leak} --- like a cancer, it kills by crowding out
  5230.    productive `tissue'.
  5231.  
  5232. :core dump: n. [common {Iron Age} jargon, preserved by UNIX]
  5233.    1. [techspeak] A copy of the contents of {core}, produced when a
  5234.    process is aborted by certain kinds of internal error.  2. By
  5235.    extension, used for humans passing out, vomiting, or registering
  5236.    extreme shock.  "He dumped core.  All over the floor.  What a
  5237.    mess."  "He heard about X and dumped core."  3. Occasionally
  5238.    used for a human rambling on pointlessly at great length; esp. in
  5239.    apology: "Sorry, I dumped core on you".  4. A recapitulation of
  5240.    knowledge (compare {bits}, sense 1).  Hence, spewing all one
  5241.    knows about a topic (syn. {brain dump}), esp. in a lecture or
  5242.    answer to an exam question.  "Short, concise answers are better
  5243.    than core dumps" (from the instructions to an exam at Columbia).
  5244.    See {core}.
  5245.  
  5246. :core leak: n. Syn. {memory leak}.
  5247.  
  5248. :Core Wars: n. A game between `assembler' programs in a
  5249.    simulated machine, where the objective is to kill your opponent's
  5250.    program by overwriting it.  Popularized by A. K. Dewdney's column
  5251.    in `Scientific American' magazine, this was actually
  5252.    devised by Victor Vyssotsky, Robert Morris, and Dennis Ritchie in
  5253.    the early 1960s (their original game was called `Darwin' and ran on
  5254.    a PDP-1 at Bell Labs).  See {core}.
  5255.  
  5256. :corge: /korj/ [originally, the name of a cat] n. Yet another
  5257.    {metasyntactic variable}, invented by Mike Gallaher and propagated
  5258.    by the {GOSMACS} documentation.  See {grault}.
  5259.  
  5260. :cosmic rays: n. Notionally, the cause of {bit rot}.  However, this is
  5261.    a semi-independent usage that may be invoked as a humorous way to
  5262.    {handwave} away any minor {randomness} that doesn't seem worth the
  5263.    bother of investigating.  "Hey, Eric --- I just got a burst of
  5264.    garbage on my {tube}, where did that come from?"  "Cosmic rays, I
  5265.    guess."  Compare {sunspots}, {phase of the moon}.  The British seem
  5266.    to prefer the usage `cosmic showers'; `alpha particles' is also
  5267.    heard, because stray alpha particles passing through a memory chip
  5268.    can cause single-bit errors (this becomes increasingly more likely
  5269.    as memory sizes and densities increase).
  5270.  
  5271.    Factual note: Alpha particles cause bit rot, cosmic rays do not
  5272.    (except occasionally in spaceborne computers).  Intel could not
  5273.    explain random bit drops in their early chips, and one hypothesis
  5274.    was cosmic rays.  So they created the World's Largest Lead Safe,
  5275.    using 25 tons of the stuff, and used two identical boards for
  5276.    testing.  One was placed in the safe, one outside.  The hypothesis
  5277.    was that if cosmic rays were causing the bit drops, they should see
  5278.    a statistically significant difference between the error rates on
  5279.    the two boards.  They did not observe such a difference.  Further
  5280.    investigation demonstrated conclusively that the bit drops were due
  5281.    to alpha particle emissions from thorium (and to a much lesser
  5282.    degree uranium) in the encapsulation material.  Since it is
  5283.    impossible to eliminate these radioactives (they are uniformly
  5284.    distributed through the earth's crust, with the statistically
  5285.    insignificant exception of uranium lodes) it became obvious that
  5286.    one has to design memories to withstand these hits.
  5287.  
  5288. :cough and die: v. Syn. {barf}.  Connotes that the program is
  5289.    throwing its hands up by design rather than because of a bug or
  5290.    oversight.  "The parser saw a control-A in its input where it was
  5291.    looking for a printable, so it coughed and died."  Compare
  5292.    {die}, {die horribly}, {scream and die}.
  5293.  
  5294. :cowboy: [Sun, from William Gibson's {cyberpunk} SF] n. Synonym
  5295.    for {hacker}.  It is reported that at Sun this word is often
  5296.    said with reverence.
  5297.  
  5298. :CP/M:: /C-P-M/ n. [Control Program for Microcomputers] An early
  5299.    microcomputer {OS} written by hacker Gary Kildall for 8080- and
  5300.    Z80-based machines, very popular in the late 1970s but virtually
  5301.    wiped out by MS-DOS after the release of the IBM PC in 1981.
  5302.    Legend has it that Kildall's company blew its chance to write the
  5303.    OS for the IBM PC because Kildall decided to spend a day IBM's reps
  5304.    wanted to meet with him enjoying the perfect flying weather in his
  5305.    private plane.  Many of CP/M's features and conventions strongly
  5306.    resemble those of early DEC operating systems such as
  5307.    {{TOPS-10}}, OS/8, RSTS, and RSX-11.  See {{MS-DOS}},
  5308.    {operating system}.
  5309.  
  5310. :CPU Wars: /C-P-U worz/ n. A 1979 large-format comic by Chas
  5311.    Andres chronicling the attempts of the brainwashed androids of IPM
  5312.    (Impossible to Program Machines) to conquer and destroy the
  5313.    peaceful denizens of HEC (Human Engineered Computers).  This rather
  5314.    transparent allegory featured many references to {ADVENT} and
  5315.    the immortal line "Eat flaming death, minicomputer mongrels!"
  5316.    (uttered, of course, by an IPM stormtrooper).  It is alleged that
  5317.    the author subsequently received a letter of appreciation on IBM
  5318.    company stationery from the head of IBM's Thomas J. Watson Research
  5319.    Laboratories (then, as now, one of the few islands of true
  5320.    hackerdom in the IBM archipelago).  The lower loop of the B in the
  5321.    IBM logo, it is said, had been carefully whited out.  See {eat
  5322.    flaming death}.
  5323.  
  5324. :crack root: v. To defeat the security system of a UNIX machine and
  5325.    gain {root} privileges thereby; see {cracking}.
  5326.  
  5327. :cracker: n. One who breaks security on a system.  Coined ca. 1985
  5328.    by hackers in defense against journalistic misuse of {hacker}
  5329.    (q.v., sense 8).  An earlier attempt to establish `worm' in this
  5330.    sense around 1981--82 on USENET was largely a failure.
  5331.  
  5332.    Both these neologisms reflected a strong revulsion against the
  5333.    theft and vandalism perpetrated by cracking rings.  While it is
  5334.    expected that any real hacker will have done some playful cracking
  5335.    and knows many of the basic techniques, anyone past {larval
  5336.    stage} is expected to have outgrown the desire to do so.
  5337.  
  5338.    Thus, there is far less overlap between hackerdom and crackerdom
  5339.    than the {mundane} reader misled by sensationalistic journalism
  5340.    might expect.  Crackers tend to gather in small, tight-knit, very
  5341.    secretive groups that have little overlap with the huge, open
  5342.    poly-culture this lexicon describes; though crackers often like to
  5343.    describe *themselves* as hackers, most true hackers consider
  5344.    them a separate and lower form of life.
  5345.  
  5346.    Ethical considerations aside, hackers figure that anyone who can't
  5347.    imagine a more interesting way to play with their computers than
  5348.    breaking into someone else's has to be pretty {losing}.  Some
  5349.    other reasons crackers are looked down on are discussed in the
  5350.    entries on {cracking} and {phreaking}.  See also
  5351.    {samurai}, {dark-side hacker}, and {hacker ethic,
  5352.    the}.
  5353.  
  5354. :cracking: n. The act of breaking into a computer system; what a
  5355.    {cracker} does.  Contrary to widespread myth, this does not
  5356.    usually involve some mysterious leap of hackerly brilliance, but
  5357.    rather persistence and the dogged repetition of a handful of fairly
  5358.    well-known tricks that exploit common weaknesses in the security of
  5359.    target systems.  Accordingly, most crackers are only mediocre
  5360.    hackers.
  5361.  
  5362. :crank: [from automotive slang] vt. Verb used to describe the
  5363.    performance of a machine, especially sustained performance.  "This
  5364.    box cranks (or, cranks at) about 6 megaflops, with a burst mode
  5365.    of twice that on vectorized operations."
  5366.  
  5367. :CrApTeX: /krap'tekh/ [University of York, England] n. Term of
  5368.    abuse used to describe TeX and LaTeX when they don't work (when
  5369.    used by TeXhackers), or all the time (by everyone else).  The
  5370.    non-TeX enthusiasts generally dislike it because it is more verbose
  5371.    than other formatters (e.g. troff) and because (particularly if the
  5372.    standard Computer Modern fonts are used) it generates vast output
  5373.    files.  See {religious issues}, {{TeX}}.
  5374.  
  5375. :crash: 1. n. A sudden, usually drastic failure.  Most often said
  5376.    of the {system} (q.v., sense 1), esp. of magnetic disk drives
  5377.    (the term originally described what happened when the air gap of a
  5378.    hard disk collapses).  "Three {luser}s lost their files in last
  5379.    night's disk crash."  A disk crash that involves the read/write
  5380.    heads dropping onto the surface of the disks and scraping off the
  5381.    oxide may also be referred to as a `head crash', whereas the term
  5382.    `system crash' usually, though not always, implies that the
  5383.    operating system or other software was at fault.  2. v. To fail
  5384.    suddenly.  "Has the system just crashed?"  "Something crashed
  5385.    the OS!" See {down}.  Also used transitively to indicate the
  5386.    cause of the crash (usually a person or a program, or both).
  5387.    "Those idiots playing {SPACEWAR} crashed the system." 3. vi.
  5388.    Sometimes said of people hitting the sack after a long {hacking
  5389.    run}; see {gronk out}.
  5390.  
  5391. :crash and burn: vi.,n. A spectacular crash, in the mode of the
  5392.    conclusion of the car-chase scene in the movie "Bullitt" and
  5393.    many subsequent imitators (compare {die horribly}).  Sun-3
  5394.    monitors losing the flyback transformer and lightning strikes on
  5395.    VAX-11/780 backplanes are notable crash and burn generators.  The
  5396.    construction `crash-and-burn machine' is reported for a computer
  5397.    used exclusively for alpha or {beta} testing, or reproducing
  5398.    bugs (i.e., not for development).  The implication is that it
  5399.    wouldn't be such a disaster if that machine crashed, since only the
  5400.    testers would be inconvenienced.
  5401.  
  5402. :crawling horror: n. Ancient crufty hardware or software that is
  5403.    kept obstinately alive by forces beyond the control of the hackers
  5404.    at a site.  Like {dusty deck} or {gonkulator}, but connotes
  5405.    that the thing described is not just an irritation but an active
  5406.    menace to health and sanity.  "Mostly we code new stuff in C, but
  5407.    they pay us to maintain one big FORTRAN II application from
  5408.    nineteen-sixty-X that's a real crawling horror...."  Compare
  5409.    {WOMBAT}.
  5410.  
  5411. :cray: /kray/ n. 1. (properly, capitalized) One of the line of
  5412.    supercomputers designed by Cray Research.  2. Any supercomputer at
  5413.    all.  3. The {canonical} {number-crunching} machine.
  5414.  
  5415.    The term is actually the lowercased last name of Seymour Cray, a
  5416.    noted computer architect and co-founder of the company.  Numerous
  5417.    vivid legends surround him, some true and some admittedly invented
  5418.    by Cray Research brass to shape their corporate culture and image.
  5419.  
  5420. :cray instability: n. A shortcoming of a program or algorithm that
  5421.    manifests itself only when a large problem is being run on a
  5422.    powerful machine (see {cray}).  Generally more subtle than bugs
  5423.    that can be detected in smaller problems running on a workstation
  5424.    or mini.
  5425.  
  5426. :crayola: /kray-oh'l*/ n. A super-mini or -micro computer that
  5427.    provides some reasonable percentage of supercomputer performance
  5428.    for an unreasonably low price.  Might also be a {killer micro}.
  5429.  
  5430. :crayola books: n. The {rainbow series} of NCSC computer
  5431.    security standards (see {Orange Book}).  Usage: humorous and/or
  5432.    disparaging.
  5433.  
  5434. :crayon: n. 1. Someone who works on Cray supercomputers.  More
  5435.    specifically, it implies a programmer, probably of the CDC ilk,
  5436.    probably male, and almost certainly wearing a tie (irrespective of
  5437.    gender).  Systems types who have a UNIX background tend not to be
  5438.    described as crayons.  2. A {computron} (sense 2) that
  5439.    participates only in {number-crunching}.  3. A unit of
  5440.    computational power equal to that of a single Cray-1.  There is a
  5441.    standard joke about this usage that derives from an old Crayola
  5442.    crayon promotional gimmick: When you buy 64 crayons you get a free
  5443.    sharpener.
  5444.  
  5445. :creationism: n. The (false) belief that large, innovative software
  5446.    designs can be completely specified in advance and then painlessly
  5447.    magicked out of the void by the normal efforts of a team of
  5448.    normally talented programmers.  In fact, experience has shown
  5449.    repeatedly that good designs arise only from evolutionary,
  5450.    exploratory interaction between one (or at most a small handful of)
  5451.    exceptionally able designer(s) and an active user population ---
  5452.    and that the first try at a big new idea is always wrong.
  5453.    Unfortunately, because these truths don't fit the planning models
  5454.    beloved of {management}, they are generally ignored.
  5455.  
  5456. :creep: v. To advance, grow, or multiply inexorably.  In hackish usage
  5457.    this verb has overtones of menace and silliness, evoking the
  5458.    creeping horrors of low-budget monster movies.
  5459.  
  5460. :creeping elegance: n. Describes a tendency for parts of a design
  5461.    to become {elegant} past the point of diminishing return,
  5462.    something which often happens at the expense of the less
  5463.    interesting parts of the design, the schedule, and other things
  5464.    deemed important in the {Real World}.  See also {creeping
  5465.    featurism}, {second-system effect}, {tense}.
  5466.  
  5467. :creeping featurism: /kree'ping fee'chr-izm/ n. 1. Describes a
  5468.    systematic tendency to load more {chrome} and {feature}s onto
  5469.    systems at the expense of whatever elegance they may have possessed
  5470.    when originally designed.  See also {feeping creaturism}.  "You
  5471.    know, the main problem with {BSD} UNIX has always been creeping
  5472.    featurism."  2. More generally, the tendency for anything
  5473.    complicated to become even more complicated because people keep
  5474.    saying "Gee, it would be even better if it had this feature too".
  5475.    (See {feature}.)  The result is usually a patchwork because it
  5476.    grew one ad-hoc step at a time, rather than being planned.
  5477.    Planning is a lot of work, but it's easy to add just one extra
  5478.    little feature to help someone ... and then another ... and
  5479.    another.... When creeping featurism gets out of hand, it's
  5480.    like a cancer.  Usually this term is used to describe computer
  5481.    programs, but it could also be said of the federal government, the
  5482.    IRS 1040 form, and new cars.  A similar phenomenon sometimes
  5483.    afflicts conscious redesigns; see {second-system effect}.  See
  5484.    also {creeping elegance}.
  5485.  
  5486. :creeping featuritis: /kree'ping fee'-chr-i:`t*s/ n. Variant of
  5487.    {creeping featurism}, with its own spoonerization: `feeping
  5488.    creaturitis'.  Some people like to reserve this form for the
  5489.    disease as it actually manifests in software or hardware, as
  5490.    opposed to the lurking general tendency in designers' minds.
  5491.    (After all, -ism means `condition' or `pursuit of', whereas
  5492.    -itis usually means `inflammation of'.)
  5493.  
  5494. :cretin: /kret'in/ or /kree'tn/ n. Congenital {loser}; an obnoxious
  5495.    person; someone who can't do anything right.  It has been observed
  5496.    that many American hackers tend to favor the British pronunciation
  5497.    /kret'in/ over standard American /kree'tn/; it is thought this may
  5498.    be due to the insidious phonetic influence of Monty Python's Flying
  5499.    Circus.
  5500.  
  5501. :cretinous: /kret'n-*s/ or /kreet'n-*s/ adj. Wrong; stupid;
  5502.    non-functional; very poorly designed.  Also used pejoratively of
  5503.    people.  See {dread high-bit disease} for an example.
  5504.    Approximate synonyms: {bletcherous}, `bagbiting' (see
  5505.    {bagbiter}), {losing}, {brain-damaged}.
  5506.  
  5507. :crippleware: n. 1. Software that has some important functionality
  5508.    deliberately removed, so as to entice potential users to pay for a
  5509.    working version.  2. [Cambridge] {Guiltware} that exhorts you to
  5510.    donate to some charity (compare {careware}, {nagware}).
  5511.    3. Hardware deliberately crippled, which can be upgraded to a more
  5512.    expensive model by a trivial change (e.g., cutting a jumper).
  5513.  
  5514.    An excellent example of crippleware (sense 3) is Intel's 486SX
  5515.    chip, which is a standard 486DX chip with the co-processor dyked
  5516.    out (in some early versions it was present but disabled).  To
  5517.    upgrade, you buy a complete 486DX chip with *working*
  5518.    co-processor (its identity thinly veiled by a different pinout) and
  5519.    plug it into the board's expansion socket.  It then disables the
  5520.    SX, which becomes a fancy power sink.  Don't you love Intel?
  5521.  
  5522. :critical mass: n. In physics, the minimum amount of fissionable
  5523.    material required to sustain a chain reaction.  Of a software
  5524.    product, describes a condition of the software such that fixing one
  5525.    bug introduces one plus {epsilon} bugs.  (This malady has many
  5526.    causes: {creeping featurism}, ports to too many disparate
  5527.    environments, poor initial design, etc.)  When software achieves
  5528.    critical mass, it can never be fixed; it can only be discarded and
  5529.    rewritten.
  5530.  
  5531. :crlf: /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ n. (often
  5532.    capitalized as `CRLF') A carriage return (CR, ASCII 0001101)
  5533.    followed by a line feed (LF, ASCII 0001010).  More loosely,
  5534.    whatever it takes to get you from the end of one line of text to
  5535.    the beginning of the next line.  See {newline}, {terpri}.
  5536.    Under {{UNIX}} influence this usage has become less common (UNIX
  5537.    uses a bare line feed as its `CRLF').
  5538.  
  5539. :crock: [from the American scatologism crock of shit] n. 1. An
  5540.    awkward feature or programming technique that ought to be made
  5541.    cleaner.  For example, using small integers to represent error
  5542.    codes without the program interpreting them to the user (as in, for
  5543.    example, UNIX `make(1)', which returns code 139 for a process
  5544.    that dies due to {segfault}).  2. A technique that works
  5545.    acceptably, but which is quite prone to failure if disturbed in the
  5546.    least.  For example, a too-clever programmer might write an
  5547.    assembler which mapped instruction mnemonics to numeric opcodes
  5548.    algorithmically, a trick which depends far too intimately on the
  5549.    particular bit patterns of the opcodes.  (For another example of
  5550.    programming with a dependence on actual opcode values, see {The
  5551.    Story of Mel, a Real Programmer} in {Appendix A}.)  Many crocks
  5552.    have a tightly woven, almost completely unmodifiable structure.
  5553.    See {kluge}, {brittle}.  The adjectives `crockish' and
  5554.    `crocky', and the nouns `crockishness' and `crockitude', are
  5555.    also used.
  5556.  
  5557. :cross-post: [USENET] vi. To post a single article simultaneously to
  5558.    several newsgroups.  Distinguished from posting the article
  5559.    repeatedly, once to each newsgroup, which causes people to see it
  5560.    multiple times (which is very bad form).  Gratuitous cross-posting
  5561.    without a Followup-To line directing responses to a single followup
  5562.    group is frowned upon, as it tends to cause {followup} articles
  5563.    to go to inappropriate newsgroups when people respond to only one
  5564.    part of the original posting.
  5565.  
  5566. :crudware: /kruhd'weir/ n. Pejorative term for the hundreds of
  5567.    megabytes of low-quality {freeware} circulated by user's groups
  5568.    and BBS systems in the micro-hobbyist world.  "Yet *another*
  5569.    set of disk catalog utilities for {{MS-DOS}}?  What crudware!"
  5570.  
  5571. :cruft: /kruhft/ [back-formation from {crufty}] 1. n. An
  5572.    unpleasant substance.  The dust that gathers under your bed is
  5573.    cruft; the TMRC Dictionary correctly noted that attacking it with a
  5574.    broom only produces more.  2. n. The results of shoddy
  5575.    construction.  3. vt. [from `hand cruft', pun on `hand craft']
  5576.    To write assembler code for something normally (and better) done by
  5577.    a compiler (see {hand-hacking}).  4. n. Excess; superfluous
  5578.    junk; used esp. of redundant or superseded code.
  5579.  
  5580.    This term is one of the oldest in the jargon and no one is sure of
  5581.    its etymology, but it is suggestive that there is a Cruft Hall at
  5582.    Harvard University which is part of the old physics building; it's
  5583.    said to have been the physics department's radar lab during WWII.
  5584.    To this day (early 1993) the windows appear to be full of random
  5585.    techno-junk.  MIT or Lincoln Labs people may well have coined the
  5586.    term as a knock on the competition.
  5587.  
  5588. :cruft together: vt. (also `cruft up') To throw together
  5589.    something ugly but temporarily workable.  Like vt. {kluge up},
  5590.    but more pejorative.  "There isn't any program now to reverse all
  5591.    the lines of a file, but I can probably cruft one together in about
  5592.    10 minutes."  See {hack together}, {hack up}, {kluge up},
  5593.    {crufty}.
  5594.  
  5595. :cruftsmanship: /kruhfts'm*n-ship / n. [from {cruft}] The
  5596.    antithesis of craftsmanship.
  5597.  
  5598. :crufty: /kruhf'tee/ [origin unknown; poss. from `crusty']
  5599.    adj. 1. Poorly built, possibly over-complex.  The {canonical}
  5600.    example is "This is standard old crufty DEC software".  In fact,
  5601.    one fanciful theory of the origin of `crufty' holds that was
  5602.    originally a mutation of `crusty' applied to DEC software so old
  5603.    that the `s' characters were tall and skinny, looking more like
  5604.    `f' characters.  2. Unpleasant, especially to the touch, often with
  5605.    encrusted junk.  Like spilled coffee smeared with peanut butter and
  5606.    catsup.  3. Generally unpleasant.  4. (sometimes spelled
  5607.    `cruftie') n. A small crufty object (see {frob}); often one
  5608.    that doesn't fit well into the scheme of things.  "A LISP property
  5609.    list is a good place to store crufties (or, collectively,
  5610.    {random} cruft)."
  5611.  
  5612. :crumb: n. Two binary digits; a {quad}.  Larger than a {bit},
  5613.    smaller than a {nybble}.  Considered silly.  Syn. {tayste}.
  5614.  
  5615. :crunch: 1. vi. To process, usually in a time-consuming or
  5616.    complicated way.  Connotes an essentially trivial operation that is
  5617.    nonetheless painful to perform.  The pain may be due to the
  5618.    triviality's being embedded in a loop from 1 to 1,000,000,000.
  5619.    "FORTRAN programs do mostly {number-crunching}."  2. vt. To
  5620.    reduce the size of a file by a complicated scheme that produces bit
  5621.    configurations completely unrelated to the original data, such as
  5622.    by a Huffman code.  (The file ends up looking something like a
  5623.    paper document would if somebody crunched the paper into a wad.)
  5624.    Since such compression usually takes more computations than simpler
  5625.    methods such as run-length encoding, the term is doubly
  5626.    appropriate.  (This meaning is usually used in the construction
  5627.    `file crunch(ing)' to distinguish it from {number-crunching}.)
  5628.    See {compress}.  3. n. The character `#'.  Used at XEROX
  5629.    and CMU, among other places.  See {{ASCII}}.  4. vt. To squeeze
  5630.    program source into a minimum-size representation that will still
  5631.    compile or execute.  The term came into being specifically for a
  5632.    famous program on the BBC micro that crunched BASIC source in order
  5633.    to make it run more quickly (it was a wholly interpretive BASIC, so
  5634.    the number of characters mattered).  {Obfuscated C Contest}
  5635.    entries are often crunched; see the first example under that
  5636.    entry.
  5637.  
  5638. :cruncha cruncha cruncha: /kruhn'ch* kruhn'ch* kruhn'ch*/ interj.
  5639.    An encouragement sometimes muttered to a machine bogged down in a
  5640.    serious {grovel}.  Also describes a notional sound made by
  5641.    groveling hardware.  See {wugga wugga}, {grind} (sense 3).
  5642.  
  5643. :cryppie: /krip'ee/ n. A cryptographer.  One who hacks or implements
  5644.    cryptographic software or hardware.
  5645.  
  5646. :CTSS: /C-T-S-S/ n. Compatible Time-Sharing System.  An early
  5647.    (1963) experiment in the design of interactive time-sharing
  5648.    operating systems, ancestral to {{Multics}}, {{UNIX}}, and
  5649.    {{ITS}}.  The name {{ITS}} (Incompatible Time-sharing System)
  5650.    was a hack on CTSS, meant both as a joke and to express some basic
  5651.    differences in philosophy about the way I/O services should be
  5652.    presented to user programs.
  5653.  
  5654. :CTY: /sit'ee/ or /C-T-Y/ n. [MIT] The terminal physically
  5655.    associated with a computer's system {{console}}.  The term is a
  5656.    contraction of `Console {tty}', that is, `Console TeleTYpe'.
  5657.    This {{ITS}}- and {{TOPS-10}}-associated term has become less
  5658.    common, as most UNIX hackers simply refer to the CTY as `the
  5659.    console'.
  5660.  
  5661. :cube: n. 1. [short for `cubicle'] A module in the open-plan
  5662.    offices used at many programming shops.  "I've got the manuals in
  5663.    my cube."  2. A NeXT machine (which resembles a matte-black cube).
  5664.  
  5665. :cubing: [parallel with `tubing'] vi. 1. Hacking on an IPSC (Intel
  5666.    Personal SuperComputer) hypercube.  "Louella's gone cubing
  5667.    *again*!!"  2. Hacking Rubik's Cube or related puzzles,
  5668.    either physically or mathematically.  3. An indescribable form of
  5669.    self-torture (see sense 1 or 2).
  5670.  
  5671. :cursor dipped in X: n. There are a couple of metaphors in English
  5672.    of the form `pen dipped in X' (perhaps the most common values of X
  5673.    are `acid', `bile', and `vitriol').  These map over neatly to this
  5674.    hackish usage (the cursor being what moves, leaving letters behind,
  5675.    when one is composing on-line).  "Talk about a {nastygram}!  He
  5676.    must've had his cursor dipped in acid when he wrote that one!"
  5677.  
  5678. :cuspy: /kuhs'pee/ [WPI: from the DEC abbreviation CUSP, for `Commonly
  5679.    Used System Program', i.e., a utility program used by many people]
  5680.    adj. 1. (of a program) Well-written.  2. Functionally excellent.  A
  5681.    program that performs well and interfaces well to users is cuspy.
  5682.    See {rude}.  3. [NYU] Said of an attractive woman, especially one
  5683.    regarded as available.  Implies a certain curvaceousness.
  5684.  
  5685. :cut a tape: vi. To write a software or document distribution on
  5686.    magnetic tape for shipment.  Has nothing to do with physically
  5687.    cutting the medium!  Early versions of this lexicon claimed that
  5688.    one never analogously speaks of `cutting a disk', but this has
  5689.    since been reported as live usage.  Related slang usages are
  5690.    mainstream business's `cut a check', the recording industry's
  5691.    `cut a record', and the military's `cut an order'.
  5692.  
  5693.    All of these usages reflect physical processes in obsolete
  5694.    recording and duplication technologies.  The first stage in
  5695.    manufacturing an old-style vinyl record involved cutting grooves in
  5696.    a stamping die with a precision lathe.  More mundanely, the
  5697.    dominant technology for mass duplication of paper documents in
  5698.    pre-photocopying days involved "cutting a stencil", punching away
  5699.    portions of the wax overlay on a silk screen.  More directly,
  5700.    paper tape with holes punched in it was an important early storage
  5701.    medium.
  5702.  
  5703. :cybercrud: /si:'ber-kruhd/ [coined by Ted Nelson] n. Obfuscatory
  5704.    tech-talk.  Verbiage with a high {MEGO} factor.  The computer
  5705.    equivalent of bureaucratese.
  5706.  
  5707. :cyberpunk: /si:'ber-puhnk/ [orig. by SF writer Bruce Bethke
  5708.    and/or editor Gardner Dozois] n.,adj. A subgenre of SF launched
  5709.    in 1982 by William Gibson's epoch-making novel `Neuromancer'
  5710.    (though its roots go back through Vernor Vinge's `True Names'
  5711.    (see "{True Names ... and Other Dangers}" in
  5712.    appendix C) to John Brunner's 1975 novel `The Shockwave
  5713.    Rider').  Gibson's near-total ignorance of computers and the
  5714.    present-day hacker culture enabled him to speculate about the role
  5715.    of computers and hackers in the future in ways hackers have since
  5716.    found both irritatingly na"ive and tremendously stimulating.
  5717.    Gibson's work was widely imitated, in particular by the short-lived
  5718.    but innovative "Max Headroom" TV series.  See
  5719.    {cyberspace}, {ice}, {jack in}, {go flatline}.
  5720.  
  5721. :cyberspace: /si:'ber-spays/ n. 1. Notional `information-space'
  5722.    loaded with visual cues and navigable with brain-computer
  5723.    interfaces called `cyberspace decks'; a characteristic prop of
  5724.    {cyberpunk} SF.  At the time of this writing (mid-1991),
  5725.    serious efforts to construct {virtual reality} interfaces
  5726.    modeled explicitly on Gibsonian cyberspace are already under way,
  5727.    using more conventional devices such as glove sensors and binocular
  5728.    TV headsets.  Few hackers are prepared to deny outright the
  5729.    possibility of a cyberspace someday evolving out of the network
  5730.    (see {network, the}).  2. Occasionally, the metaphoric location
  5731.    of the mind of a person in {hack mode}.  Some hackers report
  5732.    experiencing strong eidetic imagery when in hack mode;
  5733.    interestingly, independent reports from multiple sources suggest
  5734.    that there are common features to the experience.  In particular,
  5735.    the dominant colors of this subjective `cyberspace' are often
  5736.    gray and silver, and the imagery often involves constellations of
  5737.    marching dots, elaborate shifting patterns of lines and angles, or
  5738.    moire patterns.
  5739.  
  5740. :cycle: 1. n. The basic unit of computation.  What every hacker
  5741.    wants more of (noted hacker Bill Gosper describes himself as a
  5742.    "cycle junkie"). One can describe an instruction as taking so
  5743.    many `clock cycles'.  Often the computer can access its
  5744.    memory once on every clock cycle, and so one speaks also of
  5745.    `memory cycles'.  These are technical meanings of {cycle}.  The
  5746.    jargon meaning comes from the observation that there are only so
  5747.    many cycles per second, and when you are sharing a computer the
  5748.    cycles get divided up among the users.  The more cycles the
  5749.    computer spends working on your program rather than someone else's,
  5750.    the faster your program will run.  That's why every hacker wants
  5751.    more cycles: so he can spend less time waiting for the computer to
  5752.    respond.  2. By extension, a notional unit of *human* thought
  5753.    power, emphasizing that lots of things compete for the typical
  5754.    hacker's think time.  "I refused to get involved with the Rubik's
  5755.    Cube back when it was big.  Knew I'd burn too many cycles on it if
  5756.    I let myself."  3. vt. Syn. {bounce}, {120 reset}; from the
  5757.    phrase `cycle power'. "Cycle the machine again, that serial port's
  5758.    still hung."
  5759.  
  5760. :cycle crunch: n. A situation wherein the number of people trying
  5761.    to use a computer simultaneously has reached the point where no one
  5762.    can get enough cycles because they are spread too thin and the
  5763.    system has probably begun to {thrash}.  This scenario is an
  5764.    inevitable result of Parkinson's Law applied to timesharing.
  5765.    Usually the only solution is to buy more computer.  Happily, this
  5766.    has rapidly become easier since the mid-1980s, so much so that the
  5767.    very term `cycle crunch' now has a faintly archaic flavor; most
  5768.    hackers now use workstations or personal computers as opposed to
  5769.    traditional timesharing systems.
  5770.  
  5771. :cycle drought: n. A scarcity of cycles.  It may be due to a {cycle
  5772.    crunch}, but it could also occur because part of the computer is
  5773.    temporarily not working, leaving fewer cycles to go around.
  5774.    "The {high moby} is {down}, so we're running with only
  5775.    half the usual amount of memory.  There will be a cycle drought
  5776.    until it's fixed."
  5777.  
  5778. :cycle of reincarnation: [coined by Ivan Sutherland ca. 1970] n.
  5779.    Term used to refer to a well-known effect whereby function in a
  5780.    computing system family is migrated out to special-purpose
  5781.    peripheral hardware for speed, then the peripheral evolves toward
  5782.    more computing power as it does its job, then somebody notices that
  5783.    it is inefficient to support two asymmetrical processors in the
  5784.    architecture and folds the function back into the main CPU, at
  5785.    which point the cycle begins again.  Several iterations of this
  5786.    cycle have been observed in graphics-processor design, and at least
  5787.    one or two in communications and floating-point processors.  Also
  5788.    known as `the Wheel of Life', `the Wheel of Samsara', and other
  5789.    variations of the basic Hindu/Buddhist theological idea.  See also
  5790.    {blitter}, {bit bang}.
  5791.  
  5792. :cycle server: n. A powerful machine that exists primarily for
  5793.    running large {batch} jobs.  Implies that interactive tasks such as
  5794.    editing are done on other machines on the network, such as
  5795.    workstations.
  5796.  
  5797. = D =
  5798. =====
  5799.  
  5800. :D. C. Power Lab: n. The former site of {{SAIL}}.  Hackers thought
  5801.    this was very funny because the obvious connection to electrical
  5802.    engineering was nonexistent --- the lab was named for a Donald C.
  5803.    Power.  Compare {Marginal Hacks}.
  5804.  
  5805. :daemon: /day'mn/ or /dee'mn/ [from the mythological meaning,
  5806.    later rationalized as the acronym `Disk And Execution MONitor'] n.
  5807.    A program that is not invoked explicitly, but lies dormant waiting
  5808.    for some condition(s) to occur.  The idea is that the perpetrator
  5809.    of the condition need not be aware that a daemon is lurking (though
  5810.    often a program will commit an action only because it knows that it
  5811.    will implicitly invoke a daemon).  For example, under {{ITS}}
  5812.    writing a file on the {LPT} spooler's directory would invoke the
  5813.    spooling daemon, which would then print the file.  The advantage is
  5814.    that programs wanting (in this example) files printed need neither
  5815.    compete for access to nor understand any idiosyncrasies of the
  5816.    {LPT}.  They simply enter their implicit requests and let the
  5817.    daemon decide what to do with them.  Daemons are usually spawned
  5818.    automatically by the system, and may either live forever or be
  5819.    regenerated at intervals.
  5820.  
  5821.    Daemon and {demon} are often used interchangeably, but seem to
  5822.    have distinct connotations.  The term `daemon' was introduced to
  5823.    computing by {CTSS} people (who pronounced it /dee'mon/) and
  5824.    used it to refer to what ITS called a {dragon}.  Although the
  5825.    meaning and the pronunciation have drifted, we think this glossary
  5826.    reflects current (1993) usage.
  5827.  
  5828. :dangling pointer: n. A reference that doesn't actually lead
  5829.    anywhere (in C and some other languages, a pointer that doesn't
  5830.    actually point at anything valid).  Usually this happens because it
  5831.    formerly pointed to something that has moved or disappeared.  Used
  5832.    as jargon in a generalization of its techspeak meaning; for
  5833.    example, a local phone number for a person who has since moved to
  5834.    the other coast is a dangling pointer.
  5835.  
  5836. :dark-side hacker: n. A criminal or malicious hacker; a
  5837.    {cracker}.  From George Lucas's Darth Vader, "seduced by the
  5838.    dark side of the Force".  The implication that hackers form a
  5839.    sort of elite of technological Jedi Knights is intended.  Oppose
  5840.    {samurai}.
  5841.  
  5842. :Datamation: /day`t*-may'sh*n/ n. A magazine that many hackers
  5843.    assume all {suit}s read.  Used to question an unbelieved quote,
  5844.    as in "Did you read that in `Datamation?'" It used to
  5845.    publish something hackishly funny every once in a while, like the
  5846.    original paper on {COME FROM} in 1973, and Ed Post's "Real
  5847.    Programmers Don't Use Pascal" ten years later, but it has since
  5848.    become much more exclusively {suit}-oriented and boring.
  5849.  
  5850. :DAU: /dow/ [German Fidonet] n. German acronym for D"ummster
  5851.    Anzunehmender User (stupidest imaginable user).  From the
  5852.    engin-eering-slang GAU for Gr"osster Anzunehmender Unfall (worst
  5853.    foreseeable accident, esp. of a LNG tank farm plant or something
  5854.    with similarly disastrous consequences).See {cretin}, {fool},
  5855.    {loser} and {weasel}.
  5856.  
  5857. :day mode: n. See {phase} (sense 1).  Used of people only.
  5858.  
  5859. :dd: /dee-dee/ [UNIX: from IBM {JCL}] vt. Equivalent to
  5860.    {cat} or {BLT}.  Originally the name of a UNIX copy command
  5861.    with special options suitable for block-oriented devices; it was
  5862.    often used in heavy-handed system maintenance, as in "Let's
  5863.    `dd' the root partition onto a tape, then use the boot PROM to
  5864.    load it back on to a new disk".  The UNIX `dd(1)' was
  5865.    designed with a weird, distinctly non-UNIXy keyword option syntax
  5866.    reminiscent of IBM System/360 JCL (which had an elaborate DD
  5867.    `Dataset Definition' specification for I/O devices); though the
  5868.    command filled a need, the interface design was clearly a prank.
  5869.    The jargon usage is now very rare outside UNIX sites and now nearly
  5870.    obsolete even there, as `dd(1)' has been {deprecated} for a
  5871.    long time (though it has no exact replacement).  The term has been
  5872.    displaced by {BLT} or simple English `copy'.
  5873.  
  5874. :DDT: /D-D-T/ n. 1. Generic term for a program that assists in
  5875.    debugging other programs by showing individual machine instructions
  5876.    in a readable symbolic form and letting the user change them.  In
  5877.    this sense the term DDT is now archaic, having been widely
  5878.    displaced by `debugger' or names of individual programs like
  5879.    `adb', `sdb', `dbx', or `gdb'.  2. [ITS] Under
  5880.    MIT's fabled {{ITS}} operating system, DDT (running under the alias
  5881.    HACTRN) was also used as the {shell} or top level command
  5882.    language used to execute other programs.  3. Any one of several
  5883.    specific DDTs (sense 1) supported on early DEC hardware.  The DEC
  5884.    PDP-10 Reference Handbook (1969) contained a footnote on the first
  5885.    page of the documentation for DDT that illuminates the origin of
  5886.    the term:
  5887.  
  5888.      Historical footnote: DDT was developed at MIT for the PDP-1
  5889.      computer in 1961.  At that time DDT stood for "DEC Debugging
  5890.      Tape".  Since then, the idea of an on-line debugging program has
  5891.      propagated throughout the computer industry.  DDT programs are now
  5892.      available for all DEC computers.  Since media other than tape are
  5893.      now frequently used, the more descriptive name "Dynamic Debugging
  5894.      Technique" has been adopted, retaining the DDT abbreviation.
  5895.      Confusion between DDT-10 and another well known pesticide,
  5896.      dichloro-diphenyl-trichloroethane (C14-H9-Cl5) should be minimal
  5897.      since each attacks a different, and apparently mutually exclusive,
  5898.      class of bugs.
  5899.  
  5900.    Sadly, this quotation was removed from later editions of the
  5901.    handbook after the {suit}s took over and DEC became much more
  5902.    `businesslike'.
  5903.  
  5904.    The history above is known to many old-time hackers.  But there's
  5905.    more: Peter Samson, compiler of the original {TMRC} lexicon,
  5906.    reports that he named `DDT' after a similar tool on the TX-0
  5907.    computer, the direct ancestor of the PDP-1 built at MIT's Lincoln
  5908.    Lab in 1957.  The debugger on that ground-breaking machine (the
  5909.    first transistorized computer) rejoiced in the name FLIT
  5910.    (FLexowriter Interrogation Tape).
  5911.  
  5912. :de-rezz: /dee-rez'/ [from `de-resolve' via the movie
  5913.    "Tron"] (also `derez') 1. vi. To disappear or dissolve; the
  5914.    image that goes with it is of an object breaking up into raster
  5915.    lines and static and then dissolving.  Occasionally used of a
  5916.    person who seems to have suddenly `fuzzed out' mentally rather than
  5917.    physically.  Usage: extremely silly, also rare.  This verb was
  5918.    actually invented as *fictional* hacker jargon, and adopted in
  5919.    a spirit of irony by real hackers years after the fact.  2. vt. The
  5920.    Macintosh resource decompiler.  On a Macintosh, many program
  5921.    structures (including the code itself) are managed in small
  5922.    segments of the program file known as `resources'; `Rez' and
  5923.    `DeRez' are a pair of utilities for compiling and decompiling
  5924.    resource files.  Thus, decompiling a resource is `derezzing'.
  5925.    Usage: very common.
  5926.  
  5927. :dead: adj. 1. Non-functional; {down}; {crash}ed.  Especially
  5928.    used of hardware.  2. At XEROX PARC, software that is working but
  5929.    not undergoing continued development and support.
  5930.  
  5931. :dead code: n. Routines that can never be accessed because all
  5932.    calls to them have been removed, or code that cannot be reached
  5933.    because it is guarded by a control structure that provably must
  5934.    always transfer control somewhere else.  The presence of dead code
  5935.    may reveal either logical errors due to alterations in the program
  5936.    or significant changes in the assumptions and environment of the
  5937.    program (see also {software rot}); a good compiler should report
  5938.    dead code so a maintainer can think about what it means.
  5939.    (Sometimes it simply means that an *extremely* defensive
  5940.    programmer has inserted {can't happen} tests which really can't
  5941.    happen --- yet.)  Syn. {grunge}.
  5942.  
  5943. :DEADBEEF: /ded-beef/ n. The hexadecimal word-fill pattern for
  5944.    freshly allocated memory (decimal -21524111) under a number of
  5945.    IBM environments, including the RS/6000.  As in "Your program is
  5946.    DEADBEEF" (meaning gone, aborted, flushed from memory); if you
  5947.    start from an odd half-word boundary, of course, you have
  5948.    BEEFDEAD.
  5949.  
  5950. :deadlock: n. 1. [techspeak] A situation wherein two or more
  5951.    processes are unable to proceed because each is waiting for one of
  5952.    the others to do something.  A common example is a program
  5953.    communicating to a server, which may find itself waiting for output
  5954.    from the server before sending anything more to it, while the
  5955.    server is similarly waiting for more input from the controlling
  5956.    program before outputting anything.  (It is reported that this
  5957.    particular flavor of deadlock is sometimes called a `starvation
  5958.    deadlock', though the term `starvation' is more properly used for
  5959.    situations where a program can never run simply because it never
  5960.    gets high enough priority.  Another common flavor is
  5961.    `constipation', in which each process is trying to send stuff to
  5962.    the other but all buffers are full because nobody is reading
  5963.    anything.)  See {deadly embrace}.  2. Also used of deadlock-like
  5964.    interactions between humans, as when two people meet in a narrow
  5965.    corridor, and each tries to be polite by moving aside to let the
  5966.    other pass, but they end up swaying from side to side without
  5967.    making any progress because they always move the same way at the
  5968.    same time.
  5969.  
  5970. :deadly embrace: n. Same as {deadlock}, though usually used only when
  5971.    exactly two processes are involved.  This is the more popular term in
  5972.    Europe, while {deadlock} predominates in the United States.
  5973.  
  5974. :death code: n. A routine whose job is to set everything in the
  5975.    computer --- registers, memory, flags, everything --- to zero,
  5976.    including that portion of memory where it is running; its last act
  5977.    is to stomp on its own "store zero" instruction.  Death code
  5978.    isn't very useful, but writing it is an interesting hacking
  5979.    challenge on architectures where the instruction set makes it
  5980.    possible, such as the PDP-8 (it has also been done on the DG Nova).
  5981.  
  5982.    Perhaps the ultimate death code is on the TI 990 series, where all
  5983.    registers are actually in RAM, and the instruction "store
  5984.    immediate 0" has the opcode "0". The PC will immediately wrap
  5985.    around core as many times as it can until a user hits HALT.  Any
  5986.    empty memory location is death code.  Worse, the manufacturer
  5987.    recommended use of this instruction in startup code (which would be
  5988.    in ROM and therefore survive).
  5989.  
  5990. :Death Star: [from the movie "Star Wars"] 1. The AT&T
  5991.    corporate logo, which appears on computers sold by AT&T and bears
  5992.    an uncanny resemblance to the Death Star in the movie.  This usage
  5993.    is particularly common among partisans of {BSD} UNIX, who tend
  5994.    to regard the AT&T versions as inferior and AT&T as a bad guy.
  5995.    Copies still circulate of a poster printed by Mt. Xinu showing a
  5996.    starscape with a space fighter labeled 4.2 BSD streaking away from
  5997.    a broken AT&T logo wreathed in flames.  2. AT&T's internal
  5998.    magazine, `Focus', uses `death star' to describe an
  5999.    incorrectly done AT&T logo in which the inner circle in the top
  6000.    left is dark instead of light --- a frequent result of
  6001.    dark-on-light logo images.
  6002.  
  6003. :dec: /dek/ v. Common verbal shorthand for decrement, i.e.
  6004.    `decrease by one' (one doesn't tend to see the sbbreviation in
  6005.    writing or email).  Especially used by assembly programmers, as many
  6006.    assembly languages (including those for Intel chips) have a
  6007.    `dec' mnemonic.  Antonym: {inc}.
  6008.  
  6009. :DEC Wars: n. A 1983 {USENET} posting by Alan Hastings and Steve
  6010.    Tarr spoofing the "Star Wars" movies in hackish terms.  Some
  6011.    years later, ESR (disappointed by Hastings and Tarr's failure to
  6012.    exploit a great premise more thoroughly) posted a
  6013.    3-times-longer complete rewrite called "UNIX WARS"; the
  6014.    two are often confused.
  6015.  
  6016. :decay: [from nuclear physics] n.,vi. An automatic conversion which
  6017.    is applied to most array-valued expressions in {C}; they `decay
  6018.    into' pointer-valued expressions pointing to the array's first
  6019.    element.  This term is borderline techspeak, but is not used in the
  6020.    official standard for the language.
  6021.  
  6022. :DEChead: /dek'hed/ n. 1. A DEC {field servoid}.  Not flattering.
  6023.    2. [from `deadhead'] A Grateful Dead fan working at DEC.
  6024.  
  6025. :deckle: /dek'l/ [from dec- and {nybble}; the original
  6026.    spelling seems to have been `decle'] n. Two {nickle}s;
  6027.    10 bits.  Reported among developers for Mattel's GI 1600 (the
  6028.    Intellivision games processor), a chip with 16-bit-wide RAM but
  6029.    10-bit-wide ROM.
  6030.  
  6031. :DED: /D-E-D/ n.  Dark-Emitting Diode (that is, a burned-out
  6032.    LED).  Compare {SED}, {LER}, {write-only memory}.  In the
  6033.    early 1970s both Signetics and Texas instruments released DED spec
  6034.    sheets as {AFJ}s (suggested uses included "as a power-off
  6035.    indicator").
  6036.  
  6037. :deep hack mode: n. See {hack mode}.
  6038.  
  6039. :deep magic: [poss. from C. S. Lewis's "Narnia" books] n. An
  6040.    awesomely arcane technique central to a program or system, esp. one
  6041.    neither generally published nor available to hackers at large (compare
  6042.    {black art}); one that could only have been composed by a true
  6043.    {wizard}.  Compiler optimization techniques and many aspects of
  6044.    {OS} design used to be {deep magic}; many techniques in
  6045.    cryptography, signal processing, graphics, and AI still are.
  6046.    Compare {heavy wizardry}.  Esp. found in comments of the form
  6047.    "Deep magic begins here...".  Compare {voodoo programming}.
  6048.  
  6049. :deep space: n. 1. Describes the notional location of any program
  6050.    that has gone {off the trolley}.  Esp. used of programs that
  6051.    just sit there silently grinding long after either failure or some
  6052.    output is expected.  "Uh oh.  I should have gotten a prompt ten
  6053.    seconds ago.  The program's in deep space somewhere." Compare
  6054.    {buzz}, {catatonic}, {hyperspace}.  2. The metaphorical
  6055.    location of a human so dazed and/or confused or caught up in some
  6056.    esoteric form of {bogosity} that he or she no longer responds
  6057.    coherently to normal communication.  Compare {page out}.
  6058.  
  6059. :defenestration: [from the traditional Czechoslovakian method of
  6060.    assassinating prime ministers, via SF fandom] n. 1. Proper karmic
  6061.    retribution for an incorrigible punster.  "Oh, ghod, that was
  6062.    *awful*!"  "Quick! Defenestrate him!"  2. The act of
  6063.    exiting a window system in order to get better response time from a
  6064.    full-screen program.  This comes from the dictionary meaning of
  6065.    `defenestrate', which is to throw something out a window.  3. The
  6066.    act of discarding something under the assumption that it will
  6067.    improve matters.  "I don't have any disk space left."  "Well,
  6068.    why don't you defenestrate that 100 megs worth of old core dumps?"
  6069.    4. [proposed] The requirement to support a command-line interface.
  6070.    "It has to run on a VT100."  "Curses!  I've been
  6071.    defenestrated!"
  6072.  
  6073. :defined as: adj. In the role of, usually in an organization-chart
  6074.    sense.  "Pete is currently defined as bug prioritizer."  Compare
  6075.    {logical}.
  6076.  
  6077. :dehose: /dee-hohz/ vt. To clear a {hosed} condition.
  6078.  
  6079. :delint: /dee-lint/ v. To modify code to remove problems detected
  6080.    when {lint}ing.  Confusingly, this process is also referred to
  6081.    as `linting' code.
  6082.  
  6083. :delta: n. 1. [techspeak] A quantitative change, especially a small
  6084.    or incremental one (this use is general in physics and
  6085.    engineering).  "I just doubled the speed of my program!"  "What
  6086.    was the delta on program size?"  "About 30 percent."  (He
  6087.    doubled the speed of his program, but increased its size by only 30
  6088.    percent.)  2. [UNIX] A {diff}, especially a {diff} stored
  6089.    under the set of version-control tools called SCCS (Source Code
  6090.    Control System) or RCS (Revision Control System).  3. n. A small
  6091.    quantity, but not as small as {epsilon}.  The jargon usage of
  6092.    {delta} and {epsilon} stems from the traditional use of these
  6093.    letters in mathematics for very small numerical quantities,
  6094.    particularly in `epsilon-delta' proofs in limit theory (as in the
  6095.    differential calculus).  The term {delta} is often used, once
  6096.    {epsilon} has been mentioned, to mean a quantity that is
  6097.    slightly bigger than {epsilon} but still very small.  "The cost
  6098.    isn't epsilon, but it's delta" means that the cost isn't totally
  6099.    negligible, but it is nevertheless very small.  Common
  6100.    constructions include `within delta of ---', `within epsilon of
  6101.    ---': that is, `close to' and `even closer to'.
  6102.  
  6103. :demented: adj. Yet another term of disgust used to describe a
  6104.    program.  The connotation in this case is that the program works as
  6105.    designed, but the design is bad.  Said, for example, of a program
  6106.    that generates large numbers of meaningless error messages,
  6107.    implying that it is on the brink of imminent collapse.  Compare
  6108.    {wonky}, {bozotic}.
  6109.  
  6110. :demigod: n. A hacker with years of experience, a national reputation,
  6111.    and a major role in the development of at least one design, tool,
  6112.    or game used by or known to more than half of the hacker community.
  6113.    To qualify as a genuine demigod, the person must recognizably
  6114.    identify with the hacker community and have helped shape it.  Major
  6115.    demigods include Ken Thompson and Dennis Ritchie (co-inventors of
  6116.    {{UNIX}} and {C}) and Richard M. Stallman (inventor of
  6117.    {EMACS}).  In their hearts of hearts, most hackers dream of
  6118.    someday becoming demigods themselves, and more than one major
  6119.    software project has been driven to completion by the author's
  6120.    veiled hopes of apotheosis.  See also {net.god}, {true-hacker}.
  6121.  
  6122. :demo: /de'moh/ [short for `demonstration'] 1. v. To
  6123.    demonstrate a product or prototype.  A far more effective way of
  6124.    inducing bugs to manifest than any number of {test} runs,
  6125.    especially when important people are watching.  2. n. The act of
  6126.    demoing.  "I've gotta give a demo of the drool-proof interface;
  6127.    how does it work again?"  3. n. Esp. as `demo version', can
  6128.    refer either to an early, barely-functional version of a program
  6129.    which can be used for demonstration purposes as long as the
  6130.    operator uses *exactly* the right commands and skirts its numerous
  6131.    bugs, deficiencies, and unimplemented portions, or to a special
  6132.    version of a program (frequently with some features crippled) which
  6133.    is distributed at little or no cost to the user for enticement
  6134.    purposes.
  6135.  
  6136. :demo mode: [Sun] n. 1. The state of being {heads down} in order
  6137.    to finish code in time for a {demo}, usually due yesterday.
  6138.    2. A mode in which video games sit by themselves running through a
  6139.    portion of the game, also known as `attract mode'.  Some serious
  6140.    {app}s have a demo mode they use as a screen saver, or may go
  6141.    through a demo mode on startup (for example, the Microsoft Windows
  6142.    opening screen --- which lets you impress your neighbors without
  6143.    actually having to put up with {Microsloth Windows}).
  6144.  
  6145. :demon: n. 1. [MIT] A portion of a program that is not invoked
  6146.    explicitly, but that lies dormant waiting for some condition(s) to
  6147.    occur.  See {daemon}.  The distinction is that demons are
  6148.    usually processes within a program, while daemons are usually
  6149.    programs running on an operating system.  2. [outside MIT] Often used
  6150.    equivalently to {daemon} --- especially in the {{UNIX}} world,
  6151.    where the latter spelling and pronunciation is considered mildly
  6152.    archaic.
  6153.  
  6154.    Demons in sense 1 are particularly common in AI programs.  For
  6155.    example, a knowledge-manipulation program might implement inference
  6156.    rules as demons.  Whenever a new piece of knowledge was added,
  6157.    various demons would activate (which demons depends on the
  6158.    particular piece of data) and would create additional pieces of
  6159.    knowledge by applying their respective inference rules to the
  6160.    original piece.  These new pieces could in turn activate more
  6161.    demons as the inferences filtered down through chains of logic.
  6162.    Meanwhile, the main program could continue with whatever its
  6163.    primary task was.
  6164.  
  6165. :depeditate: /dee-ped'*-tayt/ [by (faulty) analogy with
  6166.    `decapitate'] vt.  Humorously, to cut off the feet of.  When one is
  6167.    using some computer-aided typesetting tools, careless placement of
  6168.    text blocks within a page or above a rule can result in chopped-off
  6169.    letter descenders.  Such letters are said to have been depeditated.
  6170.  
  6171. :deprecated: adj. Said of a program or feature that is considered
  6172.    obsolescent and in the process of being phased out, usually in
  6173.    favor of a specified replacement.  Deprecated features can,
  6174.    unfortunately, linger on for many years.  This term appears with
  6175.    distressing frequency in standards documents when the committees
  6176.    writing the documents realize that large amounts of extant (and
  6177.    presumably happily working) code depend on the feature(s) that have
  6178.    passed out of favor.  See also {dusty deck}.
  6179.  
  6180. :deserves to lose: adj. Said of someone who willfully does the
  6181.    {Wrong Thing}; humorously, if one uses a feature known to be
  6182.    {marginal}.  What is meant is that one deserves the consequences
  6183.    of one's {losing} actions.  "Boy, anyone who tries to use
  6184.    {mess-dos} deserves to {lose}!" ({{ITS}} fans used to say
  6185.    the same thing of {{UNIX}}; many still do.)  See also {screw},
  6186.    {chomp}, {bagbiter}.
  6187.  
  6188. :desk check: n.,v. To {grovel} over hardcopy of source code,
  6189.    mentally simulating the control flow; a method of catching bugs.
  6190.    No longer common practice in this age of on-screen editing, fast
  6191.    compiles, and sophisticated debuggers --- though some maintain
  6192.    stoutly that it ought to be.  Compare {eyeball search},
  6193.    {vdiff}, {vgrep}.
  6194.  
  6195. :despew: /d*-spyoo'/ [USENET] v. To automatically generate a
  6196.    large amount of garbage to the net, esp. from an automated posting
  6197.    program gone wild.  See {ARMM}.
  6198.  
  6199. :Devil Book: n. `The Design and Implementation of the 4.3BSD
  6200.    UNIX Operating System', by Samuel J. Leffler, Marshall Kirk
  6201.    McKusick, Michael J. Karels, and John S. Quarterman (Addison-Wesley
  6202.    Publishers, 1989, ISBN 0-201-06196-1) --- the standard reference
  6203.    book on the internals of {BSD} UNIX.  So called because the
  6204.    cover has a picture depicting a little devil (a visual play on
  6205.    {daemon}) in sneakers, holding a pitchfork (referring to one of
  6206.    the characteristic features of UNIX, the `fork(2)' system
  6207.    call).
  6208.  
  6209. :devo: /dee'voh/ [orig. in-house jargon at Symbolics] n. A person in a
  6210.    development group.  See also {doco} and {mango}.
  6211.  
  6212. :dickless workstation: n. Extremely pejorative hackerism for
  6213.    `diskless workstation', a class of botches including the Sun 3/50
  6214.    and other machines designed exclusively to network with an
  6215.    expensive central disk server.  These combine all the disadvantages
  6216.    of time-sharing with all the disadvantages of distributed personal
  6217.    computers; typically, they cannot even {boot} themselves without
  6218.    help (in the form of some kind of {breath-of-life packet}) from
  6219.    the server.
  6220.  
  6221. :dictionary flame: [USENET] n. An attempt to sidetrack a debate
  6222.    away from issues by insisting on meanings for key terms that
  6223.    presuppose a desired conclusion or smuggle in an implicit premise.
  6224.    A common tactic of people who prefer argument over definitions to
  6225.    disputes about reality.  Compare {spelling flame}.
  6226.  
  6227. :diddle: 1. vt. To work with or modify in a not particularly
  6228.    serious manner.  "I diddled a copy of {ADVENT} so it didn't
  6229.    double-space all the time."  "Let's diddle this piece of code and
  6230.    see if the problem goes away."  See {tweak} and {twiddle}.
  6231.    2. n. The action or result of diddling.  See also {tweak},
  6232.    {twiddle}, {frob}.
  6233.  
  6234. :die: v. Syn. {crash}.  Unlike {crash}, which is used
  6235.    primarily of hardware, this verb is used of both hardware and
  6236.    software.  See also {go flatline}, {casters-up mode}.
  6237.  
  6238. :die horribly: v. The software equivalent of {crash and burn},
  6239.    and the preferred emphatic form of {die}.  "The converter
  6240.    choked on an FF in its input and died horribly".
  6241.  
  6242. :diff: /dif/ n. 1. A change listing, especially giving
  6243.    differences between (and additions to) source code or documents
  6244.    (the term is often used in the plural `diffs').  "Send me your
  6245.    diffs for the Jargon File!"  Compare {vdiff}.  2. Specifically,
  6246.    such a listing produced by the `diff(1)' command, esp. when
  6247.    used as specification input to the `patch(1)' utility (which
  6248.    can actually perform the modifications; see {patch}).  This is a
  6249.    common method of distributing patches and source updates in the
  6250.    UNIX/C world.  3. v. To compare (whether or not by use of automated
  6251.    tools on machine-readable files); see also {vdiff},
  6252.    {mod}.
  6253.  
  6254. :digit: n. An employee of Digital Equipment Corporation.  See also
  6255.    {VAX}, {VMS}, {PDP-10}, {{TOPS-10}}, {DEChead}, {double
  6256.    DECkers}, {field circus}.
  6257.  
  6258. :dike: vt. To remove or disable a portion of something, as a wire
  6259.    from a computer or a subroutine from a program.  A standard slogan
  6260.    is "When in doubt, dike it out".  (The implication is that it is
  6261.    usually more effective to attack software problems by reducing
  6262.    complexity than by increasing it.)  The word `dikes' is widely
  6263.    used among mechanics and engineers to mean `diagonal cutters',
  6264.    esp. the heavy-duty metal-cutting version, but may also refer to a
  6265.    kind of wire-cutters used by electronics techs.  To `dike
  6266.    something out' means to use such cutters to remove something.
  6267.    Indeed, the TMRC Dictionary defined dike as "to attack with
  6268.    dikes".  Among hackers this term has been metaphorically extended
  6269.    to informational objects such as sections of code.
  6270.  
  6271. :ding: n.,vi. 1. Synonym for {feep}.  Usage: rare among hackers,
  6272.    but commoner in the {Real World}.  2. `dinged': What happens
  6273.    when someone in authority gives you a minor bitching about
  6274.    something, esp. something trivial.  "I was dinged for having a
  6275.    messy desk."
  6276.  
  6277. :dink: /dink/ adj. Said of a machine that has the {bitty box}
  6278.    nature; a machine too small to be worth bothering with ---
  6279.    sometimes the system you're currently forced to work on.  First
  6280.    heard from an MIT hacker working on a CP/M system with 64K, in
  6281.    reference to any 6502 system, then from fans of 32-bit
  6282.    architectures about 16-bit machines.  "GNUMACS will never work on
  6283.    that dink machine."  Probably derived from mainstream `dinky',
  6284.    which isn't sufficiently pejorative.  See {macdink}.
  6285.  
  6286. :dinosaur: n. 1. Any hardware requiring raised flooring and special
  6287.    power.  Used especially of old minis and mainframes, in contrast
  6288.    with newer microprocessor-based machines.  In a famous quote from
  6289.    the 1988 UNIX EXPO, Bill Joy compared the liquid-cooled mainframe
  6290.    in the massive IBM display with a grazing dinosaur "with a truck
  6291.    outside pumping its bodily fluids through it".  IBM was not
  6292.    amused.  Compare {big iron}; see also {mainframe}.  2. [IBM]
  6293.    A very conservative user; a {zipperhead}.
  6294.  
  6295. :dinosaur pen: n. A traditional {mainframe} computer room complete with
  6296.    raised flooring, special power, its own ultra-heavy-duty air
  6297.    conditioning, and a side order of Halon fire extinguishers.  See
  6298.    {boa}.
  6299.  
  6300. :dinosaurs mating: n. Said to occur when yet another {big iron}
  6301.    merger or buyout occurs; reflects a perception by hackers that
  6302.    these signal another stage in the long, slow dying of the
  6303.    {mainframe} industry.  In its glory days of the 1960s, it was
  6304.    `IBM and the Seven Dwarves': Burroughs, Control Data, General
  6305.    Electric, Honeywell, NCR, RCA, and Univac.  RCA and GE sold out
  6306.    early, and it was `IBM and the Bunch' (Burroughs, Univac, NCR,
  6307.    Control Data, and Honeywell) for a while.  Honeywell was bought out
  6308.    by Bull; Burroughs merged with Univac to form Unisys (in 1984 ---
  6309.    this was when the phrase `dinosaurs mating' was coined); and in
  6310.    1991 AT&T absorbed NCR.  More such earth-shaking unions of doomed
  6311.    giants seem inevitable.
  6312.  
  6313. :dirtball: [XEROX PARC] n. A small, perhaps struggling outsider;
  6314.    not in the major or even the minor leagues.  For example, "Xerox
  6315.    is not a dirtball company".
  6316.  
  6317.    [Outsiders often observe in the PARC culture an institutional
  6318.    arrogance which usage of this term exemplifies.  The brilliance and
  6319.    scope of PARC's contributions to computer science have been such
  6320.    that this superior attitude is not much resented.  --- ESR]
  6321.  
  6322. :dirty power: n. Electrical mains voltage that is unfriendly to
  6323.    the delicate innards of computers.  Spikes, {drop-outs}, average
  6324.    voltage significantly higher or lower than nominal, or just plain
  6325.    noise can all cause problems of varying subtlety and severity
  6326.    (these are collectively known as {power hit}s).
  6327.  
  6328. :disclaimer: n. [USENET] n. Statement ritually appended to many USENET
  6329.    postings (sometimes automatically, by the posting software) reiterating
  6330.    the fact (which should be obvious, but is easily forgotten) that the
  6331.    article reflects its author's opinions and not necessarily those of
  6332.    the organization running the machine through which the article
  6333.    entered the network.
  6334.  
  6335. :Discordianism: /dis-kor'di-*n-ism/ n. The veneration of
  6336.    {Eris}, a.k.a. Discordia; widely popular among hackers.
  6337.    Discordianism was popularized by Robert Shea and Robert Anton
  6338.    Wilson's novel `{Illuminatus!}' as a sort of
  6339.    self-subverting Dada-Zen for Westerners --- it should on no account
  6340.    be taken seriously but is far more serious than most jokes.
  6341.    Consider, for example, the Fifth Commandment of the Pentabarf, from
  6342.    `Principia Discordia': "A Discordian is Prohibited of
  6343.    Believing What he Reads."  Discordianism is usually connected with
  6344.    an elaborate conspiracy theory/joke involving millennia-long
  6345.    warfare between the anarcho-surrealist partisans of Eris and a
  6346.    malevolent, authoritarian secret society called the Illuminati.
  6347.    See {Religion} under {Appendix B}, {Church of the
  6348.    SubGenius}, and {ha ha only serious}.
  6349.  
  6350. :disk farm: n. (also {laundromat}) A large room or rooms filled
  6351.    with disk drives (esp. {washing machine}s).
  6352.  
  6353. :display hack: n. A program with the same approximate purpose as a
  6354.    kaleidoscope: to make pretty pictures.  Famous display hacks
  6355.    include {munching squares}, {smoking clover}, the BSD UNIX
  6356.    `rain(6)' program, `worms(6)' on miscellaneous UNIXes,
  6357.    and the {X} `kaleid(1)' program.  Display hacks can also be
  6358.    implemented without programming by creating text files containing
  6359.    numerous escape sequences for interpretation by a video terminal;
  6360.    one notable example displayed, on any VT100, a Christmas tree with
  6361.    twinkling lights and a toy train circling its base.  The {hack
  6362.    value} of a display hack is proportional to the esthetic value of
  6363.    the images times the cleverness of the algorithm divided by the
  6364.    size of the code.  Syn. {psychedelicware}.
  6365.  
  6366. :Dissociated Press: [play on `Associated Press'; perhaps inspired
  6367.    by a reference in the 1949 Bugs Bunny cartoon "What's Up,
  6368.    Doc?"] n. An algorithm for transforming any text into potentially
  6369.    humorous garbage even more efficiently than by passing it through a
  6370.    {marketroid}.  The algorithm starts by printing any N
  6371.    consecutive words (or letters) in the text.  Then at every step it
  6372.    searches for any random occurrence in the original text of the
  6373.    last N words (or letters) already printed and then prints
  6374.    the next word or letter.  {EMACS} has a handy command for this.
  6375.    Here is a short example of word-based Dissociated Press applied to
  6376.    an earlier version of this Jargon File:
  6377.  
  6378.      wart: n. A small, crocky {feature} that sticks out of
  6379.      an array (C has no checks for this).  This is relatively
  6380.      benign and easy to spot if the phrase is bent so as to be
  6381.      not worth paying attention to the medium in question.
  6382.  
  6383.    Here is a short example of letter-based Dissociated Press applied
  6384.    to the same source:
  6385.  
  6386.      window sysIWYG: n. A bit was named aften /bee't*/ prefer
  6387.      to use the other guy's re, especially in every cast a
  6388.      chuckle on neithout getting into useful informash speech
  6389.      makes removing a featuring a move or usage actual
  6390.      abstractionsidered interj. Indeed spectace logic or problem!
  6391.  
  6392.    A hackish idle pastime is to apply letter-based Dissociated Press
  6393.    to a random body of text and {vgrep} the output in hopes of finding
  6394.    an interesting new word.  (In the preceding example, `window
  6395.    sysIWYG' and `informash' show some promise.)  Iterated applications
  6396.    of Dissociated Press usually yield better results.  Similar
  6397.    techniques called `travesty generators' have been employed with
  6398.    considerable satirical effect to the utterances of USENET flamers;
  6399.    see {pseudo}.
  6400.  
  6401. :distribution: n. 1. A software source tree packaged for
  6402.    distribution; but see {kit}.  2. A vague term encompassing
  6403.    mailing lists and USENET newsgroups (but not {BBS} {fora}); any
  6404.    topic-oriented message channel with multiple recipients.  3. An
  6405.    information-space domain (usually loosely correlated with
  6406.    geography) to which propagation of a USENET message is restricted;
  6407.    a much-underutilized feature.
  6408.  
  6409. :do protocol: [from network protocol programming] vi. To perform an
  6410.    interaction with somebody or something that follows a clearly
  6411.    defined procedure.  For example, "Let's do protocol with the
  6412.    check" at a restaurant means to ask for the check, calculate the
  6413.    tip and everybody's share, collect money from everybody, generate
  6414.    change as necessary, and pay the bill.  See {protocol}.
  6415.  
  6416. :doc: /dok/ n. Common spoken and written shorthand for
  6417.    `documentation'.  Often used in the plural `docs' and in the
  6418.    construction `doc file' (i.e., documentation available on-line).
  6419.  
  6420. :doco: /do'koh/ [orig. in-house jargon at Symbolics] n. A
  6421.    documentation writer.  See also {devo} and {mango}.
  6422.  
  6423. :documentation:: n. The multiple kilograms of macerated, pounded,
  6424.    steamed, bleached, and pressed trees that accompany most modern
  6425.    software or hardware products (see also {tree-killer}).  Hackers
  6426.    seldom read paper documentation and (too) often resist writing it;
  6427.    they prefer theirs to be terse and on-line.  A common comment on
  6428.    this predilection is "You can't {grep} dead trees".  See
  6429.    {drool-proof paper}, {verbiage}, {treeware}.
  6430.  
  6431. :dodgy: adj. Syn. with {flaky}.  Preferred outside the U.S.
  6432.  
  6433. :dogcow: /dog'kow/ n. See {Moof}.
  6434.  
  6435. :dogwash: /dog'wosh/ [From a quip in the `urgency' field of a very
  6436.    optional software change request, ca. 1982.  It was something like
  6437.    "Urgency: Wash your dog first".] 1. n. A project of minimal
  6438.    priority, undertaken as an escape from more serious work.  2. v.
  6439.    To engage in such a project.  Many games and much {freeware} get
  6440.    written this way.
  6441.  
  6442. :domainist: /doh-mayn'ist/ adj. 1. Said of an {{Internet
  6443.    address}} (as opposed to a {bang path}) because the part to the
  6444.    right of the `@' specifies a nested series of `domains';
  6445.    for example, esr@snark.thyrsus.com specifies the machine
  6446.    called snark in the subdomain called thyrsus within the
  6447.    top-level domain called com.  See also {big-endian}, sense
  6448.    2.  2. Said of a site, mailer, or routing program which knows how
  6449.    to handle domainist addresses.  3. Said of a person (esp. a site
  6450.    admin) who prefers domain addressing, supports a domainist mailer,
  6451.    or prosyletizes for domainist addressing and disdains {bang
  6452.    path}s.  This term is now (1993) semi-obsolete, as most sites have
  6453.    converted.
  6454.  
  6455. :Don't do that, then!: [from an old doctor's office joke about a
  6456.    patient with a trivial complaint] Stock response to a user
  6457.    complaint.  "When I type control-S, the whole system comes to a
  6458.    halt for thirty seconds."  "Don't do that, then!" (or "So don't
  6459.    do that!").  Compare {RTFM}.
  6460.  
  6461. :dongle: /dong'gl/ n. 1. A security or {copy protection}
  6462.    device for commercial microcomputer programs consisting of a
  6463.    serialized EPROM and some drivers in a D-25 connector shell, which
  6464.    must be connected to an I/O port of the computer while the program
  6465.    is run.  Programs that use a dongle query the port at startup and
  6466.    at programmed intervals thereafter, and terminate if it does not
  6467.    respond with the dongle's programmed validation code.  Thus, users
  6468.    can make as many copies of the program as they want but must pay
  6469.    for each dongle.  The idea was clever, but it was initially a
  6470.    failure, as users disliked tying up a serial port this way.  Most
  6471.    dongles on the market today (1991) will pass data through the port
  6472.    and monitor for {magic} codes (and combinations of status lines)
  6473.    with minimal if any interference with devices further down the line
  6474.    --- this innovation was necessary to allow daisy-chained dongles
  6475.    for multiple pieces of software.  The devices are still not widely
  6476.    used, as the industry has moved away from copy-protection schemes
  6477.    in general.  2. By extension, any physical electronic key or
  6478.    transferrable ID required for a program to function.  Common
  6479.    variations on this theme have used parallel or even joystick
  6480.    ports.  See {dongle-disk}.
  6481.  
  6482.    [Note: in early 1992, advertising copy from Rainbow Technologies (a
  6483.    manufacturer of dongles) included a claim that the word derived from
  6484.    "Don Gall", allegedly the inventor of the device.  The company's
  6485.    receptionist will cheerfully tell you that the story is a myth
  6486.    invented for the ad copy.  Nevertheless, I expect it to haunt my
  6487.    life as a lexicographer for at least the next ten years. --- ESR]
  6488.  
  6489. :dongle-disk: /don'gl disk/ n.  A special floppy disk that is
  6490.    required in order to perform some task.  Some contain special
  6491.    coding that allows an application to identify it uniquely, others
  6492.    *are* special code that does something that normally-resident
  6493.    programs don't or can't.  (For example, AT&T's "Unix PC" would
  6494.    only come up in {root mode} with a special boot disk.)  Also
  6495.    called a `key disk'.  See {dongle}.
  6496.  
  6497. :donuts: n.obs. A collective noun for any set of memory bits.  This
  6498.    usage is extremely archaic and may no longer be live jargon; it
  6499.    dates from the days of ferrite-{core} memories in which each bit
  6500.    was implemented by a doughnut-shaped magnetic flip-flop.
  6501.  
  6502. :doorstop: n. Used to describe equipment that is non-functional and
  6503.    halfway expected to remain so, especially obsolete equipment kept
  6504.    around for political reasons or ostensibly as a backup.  "When we
  6505.    get another Wyse-50 in here, that ADM 3 will turn into a doorstop."
  6506.    Compare {boat anchor}.
  6507.  
  6508. :dot file: [UNIX] n. A file that is not visible by default to
  6509.    normal directory-browsing tools (on UNIX, files named with a
  6510.    leading dot are, by convention, not normally presented in directory
  6511.    listings).  Many programs define one or more dot files in which
  6512.    startup or configuration information may be optionally recorded; a
  6513.    user can customize the program's behavior by creating the
  6514.    appropriate file in the current or home directory.  (Therefore, dot
  6515.    files tend to {creep} --- with every nontrivial application
  6516.    program defining at least one, a user's home directory can be
  6517.    filled with scores of dot files, of course without the user's
  6518.    really being aware of it.)  See also {rc file}.
  6519.  
  6520. :double bucky: adj. Using both the CTRL and META keys.  "The
  6521.    command to burn all LEDs is double bucky F."
  6522.  
  6523.    This term originated on the Stanford extended-ASCII keyboard, and
  6524.    was later taken up by users of the {space-cadet keyboard} at
  6525.    MIT.  A typical MIT comment was that the Stanford {bucky bits}
  6526.    (control and meta shifting keys) were nice, but there weren't
  6527.    enough of them; you could type only 512 different characters on a
  6528.    Stanford keyboard.  An obvious way to address this was simply to
  6529.    add more shifting keys, and this was eventually done; but a
  6530.    keyboard with that many shifting keys is hard on touch-typists, who
  6531.    don't like to move their hands away from the home position on the
  6532.    keyboard.  It was half-seriously suggested that the extra shifting
  6533.    keys be implemented as pedals; typing on such a keyboard would be
  6534.    very much like playing a full pipe organ.  This idea is mentioned
  6535.    in a parody of a very fine song by Jeffrey Moss called
  6536.    "Rubber Duckie", which was published in `The Sesame
  6537.    Street Songbook' (Simon and Schuster 1971, ISBN 0-671-21036-X).
  6538.    These lyrics were written on May 27, 1978, in celebration of the
  6539.    Stanford keyboard:
  6540.  
  6541.                         Double Bucky
  6542.  
  6543.         Double bucky, you're the one!
  6544.         You make my keyboard lots of fun.
  6545.             Double bucky, an additional bit or two:
  6546.         (Vo-vo-de-o!)
  6547.         Control and meta, side by side,
  6548.         Augmented ASCII, nine bits wide!
  6549.             Double bucky!  Half a thousand glyphs, plus a few!
  6550.                 Oh,
  6551.                 I sure wish that I
  6552.                 Had a couple of
  6553.                     Bits more!
  6554.                 Perhaps a
  6555.                 Set of pedals to
  6556.                 Make the number of
  6557.                     Bits four:
  6558.                 Double double bucky!
  6559.         Double bucky, left and right
  6560.         OR'd together, outta sight!
  6561.             Double bucky, I'd like a whole word of
  6562.             Double bucky, I'm happy I heard of
  6563.             Double bucky, I'd like a whole word of you!
  6564.  
  6565.         --- The Great Quux (with apologies to Jeffrey Moss)
  6566.  
  6567.    [This, by the way, is an excellent example of computer {filk}
  6568.    --- ESR]  See also {meta bit}, {cokebottle}, and {quadruple
  6569.    bucky}.
  6570.  
  6571. :double DECkers: n. Used to describe married couples in which both
  6572.    partners work for Digital Equipment Corporation.
  6573.  
  6574. :doubled sig: [USENET] n. A {sig block} that has been included
  6575.    twice in a {USENET} article or, less commonly, in an electronic
  6576.    mail message.  An article or message with a doubled sig can be
  6577.    caused by improperly configured software.  More often, however, it
  6578.    reveals the author's lack of experience in electronic
  6579.    communication.  See {BIFF}, {pseudo}.
  6580.  
  6581. :down: 1. adj. Not operating.  "The up escalator is down" is
  6582.    considered a humorous thing to say, and "The elevator is down"
  6583.    always means "The elevator isn't working" and never refers to
  6584.    what floor the elevator is on.  With respect to computers, this
  6585.    term has passed into the mainstream; the extension to other kinds
  6586.    of machine is still hackish.  2. `go down' vi. To stop
  6587.    functioning; usually said of the {system}.  The message from the
  6588.    {console} that every hacker hates to hear from the operator is
  6589.    "System going down in 5 minutes".  3. `take down', `bring
  6590.    down' vt. To deactivate purposely, usually for repair work or
  6591.    {PM}.  "I'm taking the system down to work on that bug in the
  6592.    tape drive."  Occasionally one hears the word `down' by itself
  6593.    used as a verb in this vt. sense.  See {crash};
  6594.    oppose {up}.
  6595.  
  6596. :download: vt. To transfer data or (esp.) code from a larger `host'
  6597.    system (esp. a {mainframe}) over a digital comm link to a smaller
  6598.    `client' system, esp. a microcomputer or specialized peripheral.
  6599.    Oppose {upload}.
  6600.  
  6601.    However, note that ground-to-space communications has its own usage
  6602.    rule for this term.  Space-to-earth transmission is always `down'
  6603.    and the reverse `up' regardless of the relative size of the
  6604.    computers involved.  So far the in-space machines have invariably
  6605.    been smaller; thus the upload/download distinction has been
  6606.    reversed from its usual sense.
  6607.  
  6608. :DP: /D-P/ n. 1. Data Processing.  Listed here because,
  6609.    according to hackers, use of the term marks one immediately as a
  6610.    {suit}.  See {DPer}.  2. Common abbrev for {Dissociated
  6611.    Press}.
  6612.  
  6613. :DPB: /d*-pib'/ [from the PDP-10 instruction set] vt. To plop
  6614.    something down in the middle.  Usage: silly.  "DPB yourself into
  6615.    that couch there."  The connotation would be that the couch is
  6616.    full except for one slot just big enough for one last person to sit
  6617.    in.  DPB means `DePosit Byte', and was the name of a PDP-10
  6618.    instruction that inserts some bits into the middle of some other
  6619.    bits.  Hackish usage has been kept alive by the Common LISP function
  6620.    of the same name.
  6621.  
  6622. :DPer: /dee-pee-er/ n. Data Processor.  Hackers are absolutely
  6623.    amazed that {suit}s use this term self-referentially.
  6624.    *Computers* process data, not people!  See {DP}.
  6625.  
  6626. :dragon: n. [MIT] A program similar to a {daemon}, except that
  6627.    it is not invoked at all, but is instead used by the system to
  6628.    perform various secondary tasks.  A typical example would be an
  6629.    accounting program, which keeps track of who is logged in,
  6630.    accumulates load-average statistics, etc.  Under ITS, many
  6631.    terminals displayed a list of people logged in, where they were,
  6632.    what they were running, etc., along with some random picture (such
  6633.    as a unicorn, Snoopy, or the Enterprise), which was generated by
  6634.    the `name dragon'.  Usage: rare outside MIT --- under UNIX and most
  6635.    other OSes this would be called a `background demon' or
  6636.    {daemon}.  The best-known UNIX example of a dragon is
  6637.    `cron(1)'.  At SAIL, they called this sort of thing a
  6638.    `phantom'.
  6639.  
  6640. :Dragon Book: n. The classic text `Compilers: Principles,
  6641.    Techniques and Tools', by Alfred V. Aho, Ravi Sethi, and Jeffrey D.
  6642.    Ullman (Addison-Wesley 1986; ISBN 0-201-10088-6), so called because
  6643.    of the cover design featuring a dragon labeled `complexity of
  6644.    compiler design' and a knight bearing the lance `LALR parser
  6645.    generator' among his other trappings.  This one is more
  6646.    specifically known as the `Red Dragon Book' (1986); an earlier
  6647.    edition, sans Sethi and titled `Principles Of Compiler Design'
  6648.    (Alfred V. Aho and Jeffrey D. Ullman; Addison-Wesley, 1977; ISBN
  6649.    0-201-00022-9), was the `Green Dragon Book' (1977).  (Also `New
  6650.    Dragon Book', `Old Dragon Book'.)  The horsed knight and the
  6651.    Green Dragon were warily eying each other at a distance; now the
  6652.    knight is typing (wearing gauntlets!) at a terminal showing a
  6653.    video-game representation of the Red Dragon's head while the rest
  6654.    of the beast extends back in normal space.  See also {{book
  6655.    titles}}.
  6656.  
  6657. :drain: [IBM] v. Syn. for {flush} (sense 2).  Has a connotation
  6658.    of finality about it; one speaks of draining a device before taking
  6659.    it offline.
  6660.  
  6661. :dread high-bit disease: n. A condition endemic to PRIME (a.k.a.
  6662.    PR1ME) minicomputers that results in all the characters having
  6663.    their high (0x80) bit ON rather than OFF.  This of course makes
  6664.    transporting files to other systems much more difficult, not to
  6665.    mention talking to true 8-bit devices.  Folklore had it that PRIME
  6666.    adopted the reversed-8-bit convention in order to save 25 cents per
  6667.    serial line per machine; PRIME old-timers, on the other hand, claim
  6668.    they inherited the disease from Honeywell via customer NASA's
  6669.    compatibility requirements and struggled heroicly to cure it.
  6670.    Whoever was responsible, this probably qualifies as one of the
  6671.    most {cretinous} design tradeoffs ever made.  See {meta bit}.
  6672.    A few other machines have exhibited similar brain damage.
  6673.  
  6674. :DRECNET: /drek'net/ [from Yiddish/German `dreck', meaning
  6675.    filth] n. Deliberate distortion of DECNET, a networking protocol
  6676.    used in the {VMS} community.  So called because DEC helped write
  6677.    the Ethernet specification and then (either stupidly or as a
  6678.    malignant customer-control tactic) violated that spec in the design
  6679.    of DRECNET in a way that made it incompatible.  See also
  6680.    {connector conspiracy}.
  6681.  
  6682. :driver: n. 1. The {main loop} of an event-processing program;
  6683.    the code that gets commands and dispatches them for execution.
  6684.    2. [techspeak] In `device driver', code designed to handle a
  6685.    particular peripheral device such as a magnetic disk or tape unit.
  6686.    3. In the TeX world and the computerized typesetting world in
  6687.    general, a program that translates some device-independent or other
  6688.    common format to something a real device can actually
  6689.    understand.
  6690.  
  6691. :droid: n. A person (esp. a low-level bureaucrat or
  6692.    service-bus-i-ness employee) exhibiting most of the following
  6693.    characteristics: (a) naive trust in the wisdom of the parent
  6694.    organization or `the system'; (b) a blind-faith propensity to
  6695.    believe obvious nonsense emitted by authority figures (or
  6696.    computers!); (c) a rule-governed mentality, one unwilling or unable
  6697.    to look beyond the `letter of the law' in exceptional
  6698.    situations; (d), a paralyzing fear of official reprimand or worse
  6699.    if Procedures are not followed No Matter What; and (e) no interest
  6700.    no interest in doing anything above or beyond the call of a very
  6701.    narrowly-interpreted duty, or in particular in fixing that which is
  6702.    broken; an "It's not my job, man" attitude.
  6703.  
  6704.    Typical droid positions include supermarket checkout assistant and
  6705.    bank clerk; the syndrome is also endemic in low-level government
  6706.    employees.  The implication is that the rules and official
  6707.    procedures constitute software that the droid is executing;
  6708.    problems arise when the software has not been properly debugged.
  6709.    The term `droid mentality' is also used to describe the mindset
  6710.    behind this behavior. Compare {suit}, {marketroid}; see
  6711.    {-oid}.
  6712.  
  6713. :drool-proof paper: n. Documentation that has been obsessively {dumbed
  6714.    down}, to the point where only a {cretin} could bear to read it, is
  6715.    said to have succumbed to the `drool-proof paper syndrome' or to
  6716.    have been `written on drool-proof paper'.  For example, this is
  6717.    an actual quote from Apple's LaserWriter manual: "Do not expose
  6718.    your LaserWriter to open fire or flame."
  6719.  
  6720. :drop on the floor: vt. To react to an error condition by silently
  6721.    discarding messages or other valuable data.  "The gateway
  6722.    ran out of memory, so it just started dropping packets on the
  6723.    floor."  Also frequently used of faulty mail and netnews relay
  6724.    sites that lose messages.  See also {black hole}, {bit bucket}.
  6725.  
  6726. :drop-ins: [prob. by analogy with {drop-outs}] n. Spurious
  6727.    characters appearing on a terminal or console as a result of line
  6728.    noise or a system malfunction of some sort.  Esp. used when these
  6729.    are interspersed with one's own typed input.  Compare
  6730.    {drop-outs}, sense 2.
  6731.  
  6732. :drop-outs: n. 1. A variety of `power glitch' (see {glitch});
  6733.    momentary 0 voltage on the electrical mains.  2. Missing characters
  6734.    in typed input due to software malfunction or system saturation
  6735.    (one cause of such behavior under UNIX when a bad connection to a
  6736.    modem swamps the processor with spurious character interrupts; see
  6737.    {screaming tty}).  3. Mental glitches; used as a way of
  6738.    describing those occasions when the mind just seems to shut down
  6739.    for a couple of beats.  See {glitch}, {fried}.
  6740.  
  6741. :drugged: adj. (also `on drugs') 1. Conspicuously stupid,
  6742.    heading toward {brain-damaged}.  Often accompanied by a
  6743.    pantomime of toking a joint (but see {Appendix B}).  2. Of hardware,
  6744.    very slow relative to normal performance.
  6745.  
  6746. :drum: adj, n.  Ancient techspeak term referring to slow,
  6747.    cylindrical magnetic media that were once state-of-the-art
  6748.    mass-storage devices.  Under BSD UNIX the disk partition used for
  6749.    swapping is still called `/dev/drum'; this has led to
  6750.    considerable humor and not a few straight-faced but utterly bogus
  6751.    `explanations' getting foisted on {newbie}s.  See also "{The
  6752.    Story of Mel, a Real Programmer}" in {Appendix A}.
  6753.  
  6754. :drunk mouse syndrome: (also `mouse on drugs') n. A malady
  6755.    exhibited by the mouse pointing device of some computers.  The
  6756.    typical symptom is for the mouse cursor on the screen to move in
  6757.    random directions and not in sync with the motion of the actual
  6758.    mouse.  Can usually be corrected by unplugging the mouse and
  6759.    plugging it back again.  Another recommended fix for optical mice
  6760.    is to rotate your mouse pad 90 degrees.
  6761.  
  6762.    At Xerox PARC in the 1970s, most people kept a can of copier
  6763.    cleaner (isopropyl alcohol) at their desks.  When the steel ball on
  6764.    the mouse had picked up enough {cruft} to be unreliable, the
  6765.    mouse was doused in cleaner, which restored it for a while.
  6766.    However, this operation left a fine residue that accelerated the
  6767.    accumulation of cruft, so the dousings became more and more
  6768.    frequent.  Finally, the mouse was declared `alcoholic' and sent
  6769.    to the clinic to be dried out in a CFC ultrasonic bath.
  6770.  
  6771. :Duff's device: n. The most dramatic use yet seen of {fall
  6772.    through} in C, invented by Tom Duff when he was at Lucasfilm.
  6773.    Trying to {bum} all the instructions he could out of an inner
  6774.    loop that copied data serially onto an output port, he decided to
  6775.    {unroll} it.  He then realized that the unrolled version could
  6776.    be implemented by *interlacing* the structures of a switch and
  6777.    a loop:
  6778.  
  6779.         register n = (count + 7) / 8;      /* count > 0 assumed */
  6780.  
  6781.         switch (count % 8)
  6782.         {
  6783.         case 0:        do { *to = *from++;
  6784.         case 7:              *to = *from++;
  6785.         case 6:              *to = *from++;
  6786.         case 5:              *to = *from++;
  6787.         case 4:              *to = *from++;
  6788.         case 3:              *to = *from++;
  6789.         case 2:              *to = *from++;
  6790.         case 1:              *to = *from++;
  6791.                            } while (--n > 0);
  6792.         }
  6793.  
  6794.    Shocking though it appears to all who encounter it for the first
  6795.    time, the device is actually perfectly valid, legal C.  C's default
  6796.    {fall through} in case statements has long been its most
  6797.    controversial single feature; Duff observed that "This code forms
  6798.    some sort of argument in that debate, but I'm not sure whether it's
  6799.    for or against."
  6800.  
  6801.    [For maximal obscurity, the outermost pair of braces above could be
  6802.    actually be removed --- GLS]
  6803.  
  6804. :dumb terminal: n. A terminal that is one step above a {glass tty},
  6805.    having a minimally addressable cursor but no on-screen editing or
  6806.    other features normally supported by a {smart terminal}.  Once upon a
  6807.    time, when glass ttys were common and addressable cursors were
  6808.    something special, what is now called a dumb terminal could pass for
  6809.    a smart terminal.
  6810.  
  6811. :dumbass attack: /duhm'as *-tak'/ [Purdue] n. Notional cause of a
  6812.    novice's mistake made by the experienced, especially one made while
  6813.    running as {root} under UNIX, e.g., typing `rm -r *' or
  6814.    `mkfs' on a mounted file system.  Compare {adger}.
  6815.  
  6816. :dumbed down: adj. Simplified, with a strong connotation of
  6817.    *over*simplified.  Often, a {marketroid} will insist that
  6818.    the interfaces and documentation of software be dumbed down after
  6819.    the designer has burned untold gallons of midnight oil making it
  6820.    smart.  This creates friction.  See {user-friendly}.
  6821.  
  6822. :dump: n. 1. An undigested and voluminous mass of information about
  6823.    a problem or the state of a system, especially one routed to the
  6824.    slowest available output device (compare {core dump}), and most
  6825.    especially one consisting of hex or octal {runes} describing the
  6826.    byte-by-byte state of memory, mass storage, or some file.  In
  6827.    {elder days}, debugging was generally done by `groveling over'
  6828.    a dump (see {grovel}); increasing use of high-level languages
  6829.    and interactive debuggers has made such tedium uncommon, and the
  6830.    term `dump' now has a faintly archaic flavor.  2. A backup.  This
  6831.    usage is typical only at large timesharing installations.
  6832.  
  6833. :dumpster diving: /dump'-ster di:'-ving/ n. 1. The practice of
  6834.    sifting refuse from an office or technical installation to extract
  6835.    confidential data, especially security-compromising information
  6836.    (`dumpster' is an Americanism for what is elsewhere called a
  6837.    `skip').  Back in AT&T's monopoly days, before paper shredders
  6838.    became common office equipment, phone phreaks (see {phreaking})
  6839.    used to organize regular dumpster runs against phone company plants
  6840.    and offices.  Discarded and damaged copies of AT&T internal manuals
  6841.    taught them much.  The technique is still rumored to be a favorite
  6842.    of crackers operating against careless targets.  2. The practice of
  6843.    raiding the dumpsters behind buildings where producers and/or
  6844.    consumers of high-tech equipment are located, with the expectation
  6845.    (usually justified) of finding discarded but still-valuable
  6846.    equipment to be nursed back to health in some hacker's den.
  6847.    Experienced dumpster-divers not infrequently accumulate basements
  6848.    full of moldering (but still potentially useful) {cruft}.
  6849.  
  6850. :dup killer: /d[y]oop kill'r/ [FidoNet] n. Software that is
  6851.    supposed to detect and delete duplicates of a message that may
  6852.    have reached the FidoNet system via different routes.
  6853.  
  6854. :dup loop: /d[y]oop loop/ (also `dupe loop') [FidoNet] n. An
  6855.    infinite stream of duplicated, near-identical messages on a FidoNet
  6856.    {echo}, the only difference being unique or mangled identification
  6857.    information applied by a faulty or incorrectly configured system or
  6858.    network gateway, thus rendering {dup killer}s ineffective.  If
  6859.    such a duplicate message eventually reaches a system through which
  6860.    it has already passed (with the original identification
  6861.    information), all systems passed on the way back to that system are
  6862.    said to be involved in a {dup loop}.
  6863.  
  6864. :dusty deck: n. Old software (especially applications) which one is
  6865.    obliged to remain compatible with, or to maintain ({DP} types
  6866.    call this `legacy code', a term hackers consider smarmy and
  6867.    excessively reverent).  The term implies that the software in
  6868.    question is a holdover from card-punch days.  Used esp. when
  6869.    referring to old scientific and {number-crunching} software,
  6870.    much of which was written in FORTRAN and very poorly documented but
  6871.    is believed to be too expensive to replace.  See {fossil};
  6872.    compare {crawling horror}.
  6873.  
  6874. :DWIM: /dwim/ [acronym, `Do What I Mean'] 1. adj. Able to guess,
  6875.    sometimes even correctly, the result intended when bogus input was
  6876.    provided.  2. n.,obs. The BBNLISP/INTERLISP function that attempted
  6877.    to accomplish this feat by correcting many of the more common
  6878.    errors.  See {hairy}.  3. Occasionally, an interjection hurled
  6879.    at a balky computer, esp. when one senses one might be tripping
  6880.    over legalisms (see {legalese}).
  6881.  
  6882.    Warren Teitelman originally wrote DWIM to fix his typos and
  6883.    spelling errors, so it was somewhat idiosyncratic to his style, and
  6884.    would often make hash of anyone else's typos if they were
  6885.    stylistically different.  Some victims of DWIM thus claimed that
  6886.    the acronym stood for `Damn Warren's Infernal Machine!'.
  6887.  
  6888.    In one notorious incident, Warren added a DWIM feature to the
  6889.    command interpreter used at Xerox PARC.  One day another hacker
  6890.    there typed `delete *$' to free up some disk space.  (The
  6891.    editor there named backup files by appending `$' to the
  6892.    original file name, so he was trying to delete any backup files
  6893.    left over from old editing sessions.)  It happened that there
  6894.    weren't any editor backup files, so DWIM helpfully reported
  6895.    `*$ not found, assuming you meant 'delete *'.' It then started
  6896.    to delete all the files on the disk!  The hacker managed to stop it
  6897.    with a {Vulcan nerve pinch} after only a half dozen or so files
  6898.    were lost.
  6899.    
  6900.    The disgruntled victim later said he had been sorely tempted to go
  6901.    to Warren's office, tie Warren down in his chair in front of his
  6902.    workstation, and then type `delete *$' twice.
  6903.  
  6904.    DWIM is often suggested in jest as a desired feature for a complex
  6905.    program; it is also occasionally described as the single
  6906.    instruction the ideal computer would have.  Back when proofs of
  6907.    program correctness were in vogue, there were also jokes about
  6908.    `DWIMC' (Do What I Mean, Correctly).  A related term, more often
  6909.    seen as a verb, is DTRT (Do The Right Thing); see {Right
  6910.    Thing}.
  6911.  
  6912. :dynner: /din'r/ 32 bits, by analogy with {nybble} and
  6913.    {{byte}}.  Usage: rare and extremely silly.  See also {playte},
  6914.    {tayste}, {crumb}.
  6915. = E =
  6916. =====
  6917.  
  6918. :earthquake: [IBM] n. The ultimate real-world shock test for
  6919.    computer hardware.  Hackish sources at IBM deny the rumor that the
  6920.    Bay Area quake of 1989 was initiated by the company to test
  6921.    quality-assurance procedures at its California plants.
  6922.  
  6923. :Easter egg: [from the custom of the Easter Egg hunt observed in
  6924.    the U.S. and many parts of Europe] n. 1. A message hidden in the
  6925.    object code of a program as a joke, intended to be found by persons
  6926.    disassembling or browsing the code.  2. A message, graphic, or
  6927.    sound effect emitted by a program (or, on a PC, the BIOS ROM) in
  6928.    response to some undocumented set of commands or keystrokes,
  6929.    intended as a joke or to display program credits.  One well-known
  6930.    early Easter egg found in a couple of OSes caused them to respond
  6931.    to the command `make love' with `not war?'.  Many
  6932.    personal computers have much more elaborate eggs hidden in ROM,
  6933.    including lists of the developers' names, political exhortations,
  6934.    snatches of music, and (in one case) graphics images of the entire
  6935.    development team.
  6936.  
  6937. :Easter egging: [IBM] n. The act of replacing unrelated components
  6938.    more or less at random in hopes that a malfunction will go away.
  6939.    Hackers consider this the normal operating mode of {field
  6940.    circus} techs and do not love them for it.  See also the jokes
  6941.    under {field circus}.  Compare {shotgun debugging}.
  6942.  
  6943. :eat flaming death: imp. A construction popularized among hackers by
  6944.    the infamous {CPU Wars} comic; supposedly derive from a famously
  6945.    turgid line in a WWII-era anti-Nazi propaganda comic that ran
  6946.    "Eat flaming death, non-Aryan mongrels!" or something of the sort
  6947.    (however, it is also reported that the Firesign Theater's
  6948.    1975 album "In The Next World, You're On Your Own" included the
  6949.    phrase "Eat flaming death, fascist media pigs"; this may have been
  6950.    an influence).  Used in humorously overblown expressions of
  6951.    hostility. "Eat flaming death, {{EBCDIC}} users!"
  6952.  
  6953. :EBCDIC:: /eb's*-dik/, /eb'see`dik/, or /eb'k*-dik/ [abbreviation,
  6954.    Extended Binary Coded Decimal Interchange Code] n. An alleged
  6955.    character set used on IBM {dinosaur}s.  It exists in at least six
  6956.    mutually incompatible versions, all featuring such delights as
  6957.    non-contiguous letter sequences and the absence of several ASCII
  6958.    punctuation characters fairly important for modern computer
  6959.    languages (exactly which characters are absent varies according to
  6960.    which version of EBCDIC you're looking at).  IBM adapted EBCDIC
  6961.    from {{punched card}} code in the early 1960s and promulgated it
  6962.    as a customer-control tactic (see {connector conspiracy}),
  6963.    spurning the already established ASCII standard.  Today, IBM claims
  6964.    to be an open-systems company, but IBM's own description of the
  6965.    EBCDIC variants and how to convert between them is still internally
  6966.    classified top-secret, burn-before-reading.  Hackers blanch at the
  6967.    very *name* of EBCDIC and consider it a manifestation of
  6968.    purest {evil}.  See also {fear and loathing}.
  6969.  
  6970. :echo: [FidoNet] n. A {topic group} on {FidoNet}'s echomail
  6971.    system.  Compare {newsgroup}.
  6972.  
  6973. :eighty-column mind: [IBM] n. The sort said to be possessed by
  6974.    persons for whom the transition from {punched card} to tape was
  6975.    traumatic (nobody has dared tell them about disks yet).  It is said
  6976.    that these people, including (according to an old joke) the founder
  6977.    of IBM, will be buried `face down, 9-edge first' (the 9-edge being
  6978.    the bottom of the card).  This directive is inscribed on IBM's
  6979.    1402 and 1622 card readers and is referenced in a famous bit of
  6980.    doggerel called "The Last Bug", the climactic lines of which
  6981.    are as follows:
  6982.  
  6983.         He died at the console
  6984.         Of hunger and thirst.
  6985.         Next day he was buried,
  6986.         Face down, 9-edge first.
  6987.  
  6988.    The eighty-column mind is thought by most hackers to dominate IBM's
  6989.    customer base and its thinking.  See {IBM}, {fear and
  6990.    loathing}, {card walloper}.
  6991.  
  6992. :El Camino Bignum: /el' k*-mee'noh big'nuhm/ n. The road
  6993.    mundanely called El Camino Real, a road through the San Francisco
  6994.    peninsula that originally extended all the way down to Mexico City
  6995.    and many portions of which are still intact.  Navigation on the San
  6996.    Francisco peninsula is usually done relative to El Camino Real,
  6997.    which defines {logical} north and south even though it isn't
  6998.    really north-south many places.  El Camino Real runs right past
  6999.    Stanford University and so is familiar to hackers.
  7000.  
  7001.    The Spanish word `real' (which has two syllables: /ray-ol'/)
  7002.    means `royal'; El Camino Real is `the royal road'.  In the FORTRAN
  7003.    language, a `real' quantity is a number typically precise to seven
  7004.    significant digits, and a `double precision' quantity is a larger
  7005.    floating-point number, precise to perhaps fourteen significant
  7006.    digits (other languages have similar `real' types).
  7007.  
  7008.    When a hacker from MIT visited Stanford in 1976, he remarked what a
  7009.    long road El Camino Real was.  Making a pun on `real', he started
  7010.    calling it `El Camino Double Precision' --- but when the hacker
  7011.    was told that the road was hundreds of miles long, he renamed it
  7012.    `El Camino Bignum', and that name has stuck.  (See {bignum}.)
  7013.  
  7014. :elder days: n. The heroic age of hackerdom (roughly, pre-1980); the
  7015.    era of the {PDP-10}, {TECO}, {{ITS}}, and the ARPANET.  This
  7016.    term has been rather consciously adopted from J. R. R. Tolkien's
  7017.    fantasy epic `The Lord of the Rings'.  Compare {Iron Age};
  7018.    see also {elvish} and {Great Worm, the}.
  7019.  
  7020. :elegant: [from mathematical usage] adj. Combining simplicity,
  7021.    power, and a certain ineffable grace of design.  Higher praise than
  7022.    `clever', `winning', or even {cuspy}.
  7023.  
  7024.    The French aviator, adventurer, and author Antoine de
  7025.    Saint-Exup'ery, probably best known for his classic children's
  7026.    book `The Little Prince', was also an aircraft designer.  He
  7027.    gave us perhaps the best definition of engineering elegance when he
  7028.    said "A designer knows he has achieved perfection not when there
  7029.    is nothing left to add, but when there is nothing left to take
  7030.    away."
  7031.  
  7032. :elephantine: adj. Used of programs or systems that are both
  7033.    conspicuous {hog}s (owing perhaps to poor design founded on
  7034.    {brute force and ignorance}) and exceedingly {hairy} in source
  7035.    form.  An elephantine program may be functional and even friendly,
  7036.    but (as in the old joke about being in bed with an elephant) it's
  7037.    tough to have around all the same (and, like a pachyderm, difficult
  7038.    to maintain).  In extreme cases, hackers have been known to make
  7039.    trumpeting sounds or perform expressive proboscatory mime at the
  7040.    mention of the offending program.  Usage: semi-humorous.  Compare
  7041.    `has the elephant nature' and the somewhat more pejorative
  7042.    {monstrosity}.  See also {second-system effect} and
  7043.    {baroque}.
  7044.  
  7045. :elevator controller: n. An archetypal dumb embedded-systems
  7046.    application, like {toaster} (which superseded it).  During one
  7047.    period (1983--84) in the deliberations of ANSI X3J11 (the
  7048.    C standardization committee) this was the canonical example of a
  7049.    really stupid, memory-limited computation environment.  "You can't
  7050.    require `printf(3)' to be part of the default runtime library
  7051.    --- what if you're targeting an elevator controller?"  Elevator
  7052.    controllers became important rhetorical weapons on both sides of
  7053.    several {holy wars}.
  7054.  
  7055. :ELIZA effect: /*-li:'z* *-fekt'/ [AI community] n. The tendency of 
  7056.    humans to attach associations to terms from prior experience.
  7057.    For example, there is nothing magic about the symbol `+' that 
  7058.    makes it well-suited to indicate addition; it's just that people
  7059.    associate it with addition.  Using `+' or `plus' to mean addition
  7060.    in a computer language is taking advantage of the ELIZA effect.
  7061.  
  7062.    This term comes from the famous ELIZA program by Joseph Weizenbaum,
  7063.    which simulated a Rogerian psychoanalyst by re-phrasing many of the
  7064.    patient's statements as questions and posing them to the patient.
  7065.    It worked by simple pattern recognition and substitution of key
  7066.    words into canned phrases.  It was so convincing, however, that
  7067.    there are many anecdotes about people becoming very emotionally
  7068.    caught up in dealing with ELIZA.  All this was due to people's
  7069.    tendency to attach to words meanings which the computer never put
  7070.    there.  The ELIZA effect is a {Good Thing} when writing a
  7071.    programming language, but it can blind you to serious shortcomings
  7072.    when analyzing an Artificial Intelligence system.  Compare
  7073.    {ad-hockery}; see also {AI-complete}.
  7074.  
  7075. :elvish: n. 1. The Tengwar of Feanor, a table of letterforms
  7076.    resembling the beautiful Celtic half-uncial hand of the `Book
  7077.    of Kells'.  Invented and described by J. R. R. Tolkien in `The
  7078.    Lord of The Rings' as an orthography for his fictional `elvish'
  7079.    languages, this system (which is both visually and phonetically
  7080.    {elegant}) has long fascinated hackers (who tend to be intrigued
  7081.    by artificial languages in general).  It is traditional for
  7082.    graphics printers, plotters, window systems, and the like to
  7083.    support a Feanorian typeface as one of their demo items.  See also
  7084.    {elder days}.  2. By extension, any odd or unreadable typeface
  7085.    produced by a graphics device.  3. The typeface mundanely called
  7086.    `B"ocklin', an art-decoish display font.
  7087.  
  7088. :EMACS: /ee'maks/ [from Editing MACroS] n. The ne plus ultra of
  7089.    hacker editors, a programmable text editor with an entire LISP
  7090.    system inside it.  It was originally written by Richard Stallman in
  7091.    {TECO} under {{ITS}} at the MIT AI lab; AI Memo 554 described
  7092.    it as "an advanced, self-documenting, customizable, extensible
  7093.    real-time display editor".  It has since been reimplemented any
  7094.    number of times, by various hackers, and versions exist that run
  7095.    under most major operating systems.  Perhaps the most widely used
  7096.    version, also written by Stallman and now called "{GNU} EMACS"
  7097.    or {GNUMACS}, runs principally under UNIX.  It includes
  7098.    facilities to run compilation subprocesses and send and receive
  7099.    mail; many hackers spend up to 80% of their {tube time} inside
  7100.    it.  Other variants include {GOSMACS}, CCA EMACS, UniPress
  7101.    EMACS, Montgomery EMACS, jove, epsilon, and MicroEMACS.
  7102.  
  7103.    Some EMACS versions running under window managers iconify as an
  7104.    overflowing kitchen sink, perhaps to suggest the one feature the
  7105.    editor does not (yet) include.  Indeed, some hackers find EMACS too
  7106.    {heavyweight} and {baroque} for their taste, and expand the
  7107.    name as `Escape Meta Alt Control Shift' to spoof its heavy reliance
  7108.    on keystrokes decorated with {bucky bits}.  Other spoof
  7109.    expansions include `Eight Megabytes And Constantly Swapping',
  7110.    `Eventually `malloc()'s All Computer Storage', and `EMACS
  7111.    Makes A Computer Slow' (see {{recursive acronym}}).  See
  7112.    also {vi}.
  7113.  
  7114. :email: /ee'mayl/ (also written `e-mail') 1. n. Electronic mail
  7115.    automatically passed through computer networks and/or via modems
  7116.    over common-carrier lines.  Contrast {snail-mail},
  7117.    {paper-net}, {voice-net}.  See {network address}.
  7118.    2. vt. To send electronic mail.
  7119.  
  7120.    Oddly enough, the word `emailed' is actually listed in the OED; it
  7121.    means "embossed (with a raised pattern) or arranged in a net work".
  7122.    A use from 1480 is given. The word is derived from French
  7123.    `emmailleure', network.
  7124.  
  7125. :emoticon: /ee-moh'ti-kon/ n. An ASCII glyph used to indicate an
  7126.    emotional state in email or news.  Although originally intended
  7127.    mostly as jokes, emoticons (or some other explicit humor
  7128.    indication) are virtually required under certain circumstances in
  7129.    high-volume text-only communication forums such as USENET; the lack
  7130.    of verbal and visual cues can otherwise cause what were intended to
  7131.    be humorous, sarcastic, ironic, or otherwise non-100%-serious
  7132.    comments to be badly misinterpreted (not always even by
  7133.    {newbie}s), resulting in arguments and {flame war}s.
  7134.  
  7135.    Hundreds of emoticons have been proposed, but only a few are in
  7136.    common use.  These include:
  7137.  
  7138.      :-)
  7139.           `smiley face' (for humor, laughter, friendliness,
  7140.           occasionally sarcasm)
  7141.  
  7142.      :-(
  7143.           `frowney face' (for sadness, anger, or upset)
  7144.  
  7145.      ;-)
  7146.           `half-smiley' ({ha ha only serious});
  7147.           also known as `semi-smiley' or `winkey face'.
  7148.  
  7149.      :-/
  7150.           `wry face'
  7151.  
  7152.    (These may become more comprehensible if you tilt your head
  7153.    sideways, to the left.)
  7154.  
  7155.    The first two listed are by far the most frequently encountered.
  7156.    Hyphenless forms of them are common on CompuServe, GEnie, and BIX;
  7157.    see also {bixie}.  On {USENET}, `smiley' is often used as a
  7158.    generic term synonymous with {emoticon}, as well as specifically
  7159.    for the happy-face emoticon.
  7160.  
  7161.    It appears that the emoticon was invented by one Scott Fahlman on
  7162.    the CMU {bboard} systems around 1980.  He later wrote: "I wish I
  7163.    had saved the original post, or at least recorded the date for
  7164.    posterity, but I had no idea that I was starting something that
  7165.    would soon pollute all the world's communication channels."  [GLS
  7166.    confirms that he remembers this original posting].
  7167.  
  7168.    Note for the {newbie}: Overuse of the smiley is a mark of
  7169.    loserhood!  More than one per paragraph is a fairly sure sign that
  7170.    you've gone over the line.
  7171.  
  7172. :empire: n. Any of a family of military simulations derived from a
  7173.    game written by Peter Langston many years ago.  Five or six
  7174.    multi-player variants of varying degrees of sophistication exist,
  7175.    and one single-player version implemented for both UNIX and VMS;
  7176.    the latter is even available as MS-DOS freeware.  All are
  7177.    notoriously addictive.
  7178.  
  7179. :engine: n. 1. A piece of hardware that encapsulates some function
  7180.    but can't be used without some kind of {front end}.  Today we
  7181.    have, especially, `print engine': the guts of a laser printer.
  7182.    2. An analogous piece of software; notionally, one that does a lot
  7183.    of noisy crunching, such as a `database engine'.
  7184.  
  7185.    The hackish senses of `engine' are actually close to its original,
  7186.    pre-Industrial-Revolution sense of a skill, clever device, or
  7187.    instrument (the word is cognate to `ingenuity').  This sense had
  7188.    not been completely eclipsed by the modern connotation of
  7189.    power-transducing machinery in Charles Babbage's time, which
  7190.    explains why he named the stored-program computer that
  7191.    he designed in 1844 the `Analytical Engine'.
  7192.  
  7193. :English: 1. n.,obs. The source code for a program, which may be in
  7194.    any language, as opposed to the linkable or executable binary
  7195.    produced from it by a compiler.  The idea behind the term is that
  7196.    to a real hacker, a program written in his favorite programming
  7197.    language is at least as readable as English.  Usage: mostly by
  7198.    old-time hackers, though recognizable in context.  2. The official
  7199.    name of the database language used by the Pick Operating System,
  7200.    actually a sort of crufty, brain-damaged SQL with delusions of
  7201.    grandeur.  The name permits {marketroid}s to say "Yes, and you
  7202.    can program our computers in English!" to ignorant {suit}s
  7203.    without quite running afoul of the truth-in-advertising laws.
  7204.  
  7205. :enhancement: n. {Marketroid}-speak for a bug {fix}.  This abuse
  7206.    of language is a popular and time-tested way to turn incompetence
  7207.    into increased revenue.  A hacker being ironic would instead call
  7208.    the fix a {feature} --- or perhaps save some effort by declaring
  7209.    the bug itself to be a feature.
  7210.  
  7211. :ENQ: /enkw/ or /enk/ [from the ASCII mnemonic ENQuire for
  7212.    0000101] An on-line convention for querying someone's availability.
  7213.    After opening a {talk mode} connection to someone apparently in
  7214.    heavy hack mode, one might type `SYN SYN ENQ?' (the SYNs
  7215.    representing notional synchronization bytes), and expect a return
  7216.    of {ACK} or {NAK} depending on whether or not the person felt
  7217.    interruptible.  Compare {ping}, {finger}, and the usage of
  7218.    `FOO?' listed under {talk mode}.
  7219.  
  7220. :EOF: /E-O-F/ [abbreviation, `End Of File'] n. 1. [techspeak] The
  7221.    {out-of-band} value returned by C's sequential character-input
  7222.    functions (and their equivalents in other environments) when end of
  7223.    file has been reached.  This value is -1 under C
  7224.    libraries postdating V6 UNIX, but was originally 0.  2. [UNIX] The
  7225.    keyboard character (usually control-D, the ASCII EOT (End Of
  7226.    Transmission) character) that is mapped by the terminal driver into
  7227.    an end-of-file condition.  3. Used by extension in non-computer
  7228.    contexts when a human is doing something that can be modeled as a
  7229.    sequential read and can't go further.  "Yeah, I looked for a list
  7230.    of 360 mnemonics to post as a joke, but I hit EOF pretty fast; all
  7231.    the library had was a {JCL} manual."  See also
  7232.    {EOL}.
  7233.  
  7234. :EOL: /E-O-L/ [End Of Line] n. Syn. for {newline}, derived
  7235.    perhaps from the original CDC6600 Pascal.  Now rare, but widely
  7236.    recognized and occasionally used for brevity.  Used in the
  7237.    example entry under {BNF}.  See also {EOF}.
  7238.  
  7239. :EOU: /E-O-U/ n. The mnemonic of a mythical ASCII control
  7240.    character (End Of User) that would make an ASR-33 Teletype explode
  7241.    on receipt.  This construction parodies the numerous obscure
  7242.    delimiter and control characters left in ASCII from the days when
  7243.    it was associated more with wire-service teletypes than computers
  7244.    (e.g., FS, GS, RS, US, EM, SUB, ETX, and esp. EOT).  It is worth
  7245.    remembering that ASR-33s were big, noisy mechanical beasts with a
  7246.    lot of clattering parts; the notion that one might explode was
  7247.    nowhere near as ridiculous as it might seem to someone sitting in
  7248.    front of a {tube} or flatscreen today.
  7249.  
  7250. :epoch: [UNIX: prob. from astronomical timekeeping] n. The time
  7251.    and date corresponding to 0 in an operating system's clock and
  7252.    timestamp values.  Under most UNIX versions the epoch is 00:00:00
  7253.    GMT, January 1, 1970; under VMS, it's 00:00:00 GMT of November 17,
  7254.    1858 (base date of the U.S. Naval Observatory's ephemerides).
  7255.    System time is measured in seconds or {tick}s past the epoch.
  7256.    Weird problems may ensue when the clock wraps around (see {wrap
  7257.    around}), which is not necessarily a rare event; on systems
  7258.    counting 10 ticks per second, a signed 32-bit count of ticks is
  7259.    good only for 6.8 years.  The 1-tick-per-second clock of UNIX is
  7260.    good only until January 18, 2038, assuming at least some software
  7261.    continues to consider it signed and that word lengths don't
  7262.    increase by then.  See also {wall time}.
  7263.  
  7264. :epsilon: [see {delta}] 1. n. A small quantity of anything.
  7265.    "The cost is epsilon."  2. adj. Very small, negligible; less than
  7266.    {marginal}.  "We can get this feature for epsilon cost."
  7267.    3. `within epsilon of': close enough to be indistinguishable for
  7268.    all practical purposes, even closer than being `within delta
  7269.    of'.  "That's not what I asked for, but it's within epsilon of
  7270.    what I wanted."  Alternatively, it may mean not close enough, but
  7271.    very little is required to get it there: "My program is within
  7272.    epsilon of working."
  7273.  
  7274. :epsilon squared: n. A quantity even smaller than {epsilon}, as
  7275.    small in comparison to epsilon as epsilon is to something normal;
  7276.    completely negligible.  If you buy a supercomputer for a million
  7277.    dollars, the cost of the thousand-dollar terminal to go with it is
  7278.    {epsilon}, and the cost of the ten-dollar cable to connect them
  7279.    is epsilon squared.  Compare {lost in the underflow}, {lost
  7280.    in the noise}.
  7281.  
  7282. :era, the: Syn. {epoch}.  Webster's Unabridged makes these words
  7283.    almost synonymous, but `era' usually connotes a span of time rather
  7284.    than a point in time.  The {epoch} usage is recommended.
  7285.  
  7286. :Eric Conspiracy: n. A shadowy group of mustachioed hackers named
  7287.    Eric first pinpointed as a sinister conspiracy by an infamous
  7288.    talk.bizarre posting ca. 1986; this was doubtless influenced by the
  7289.    numerous `Eric' jokes in the Monty Python oeuvre.  There do indeed
  7290.    seem to be considerably more mustachioed Erics in hackerdom than
  7291.    the frequency of these three traits can account for unless they are
  7292.    correlated in some arcane way.  Well-known examples include Eric
  7293.    Allman (he of the `Allman style' described under {indent style})
  7294.    and Erik Fair (co-author of NNTP); your editor has heard from about
  7295.    fourteen others by email, and the organization line `Eric
  7296.    Conspiracy Secret Laboratories' now emanates regularly from more
  7297.    than one site.
  7298.  
  7299. :Eris: /e'ris/ n. The Greek goddess of Chaos, Discord, Confusion,
  7300.    and Things You Know Not Of; her name was latinized to Discordia and
  7301.    she was worshiped by that name in Rome.  Not a very friendly deity
  7302.    in the Classical original, she was reinvented as a more benign
  7303.    personification of creative anarchy starting in 1959 by the
  7304.    adherents of {Discordianism} and has since been a semi-serious
  7305.    subject of veneration in several `fringe' cultures, including
  7306.    hackerdom.  See {Discordianism}, {Church of the SubGenius}.
  7307.  
  7308. :erotics: /ee-ro'tiks/ n. [Helsinki University of Technology,
  7309.    Finland] n. English-language university slang for electronics.
  7310.    Often used by hackers in Helsinki, maybe because good electronics
  7311.    excites them and makes them warm.
  7312.  
  7313. :error 33: [XEROX PARC] n. 1. Predicating one research effort upon
  7314.    the success of another.  2. Allowing your own research effort to be
  7315.    placed on the critical path of some other project (be it a research
  7316.    effort or not).
  7317.  
  7318. :evil: adj. As used by hackers, implies that some system, program,
  7319.    person, or institution is sufficiently maldesigned as to be not
  7320.    worth the bother of dealing with.  Unlike the adjectives in the
  7321.    {cretinous}/{losing}/{brain-damaged} series, `evil' does
  7322.    not imply incompetence or bad design, but rather a set of goals or
  7323.    design criteria fatally incompatible with the speaker's.  This
  7324.    usage is more an esthetic and engineering judgment than a moral one
  7325.    in the mainstream sense.  "We thought about adding a {Blue
  7326.    Glue} interface but decided it was too evil to deal with."
  7327.    "{TECO} is neat, but it can be pretty evil if you're prone to
  7328.    typos."  Often pronounced with the first syllable lengthened, as
  7329.    /eeee'vil/.  Compare {evil and rude}.
  7330.  
  7331. :evil and rude: adj. Both {evil} and {rude}, but this phrase
  7332.    has the additional connotation that the rudeness was due to malice
  7333.    rather than incompetence.  Thus, for example: Microsoft's Windows
  7334.    NT is evil because it's a competent implementation of a bad
  7335.    design; it's rude because it's gratuitously incompatible with
  7336.    UNIX in places where compatibility would have been as easy and
  7337.    effective to do; but it's evil and rude because the
  7338.    incompatiblities are apparently there not to fix design bugs in
  7339.    UNIX but rather to lock hapless customers and developers into the
  7340.    Microsoft way. Hackish evil and rude is close to the mainstream
  7341.    sense of `evil'.
  7342.  
  7343. :exa-: /ek's*/ [SI] pref. See {{quantifiers}}.
  7344.  
  7345. :examining the entrails: n. The process of {grovel}ling through
  7346.    a {core dump} or hex image in the attempt to discover the bug that
  7347.    brought a program or system down.  The reference is to divination
  7348.    from the entrails of a sacrified animal.  Compare {runes},
  7349.    {incantation}, {black art}, {desk check}.
  7350.  
  7351. :EXCH: /eks'ch*/ or /eksch/ vt. To exchange two things, each
  7352.    for the other; to swap places.  If you point to two people sitting
  7353.    down and say "Exch!", you are asking them to trade places.  EXCH,
  7354.    meaning EXCHange, was originally the name of a PDP-10 instruction
  7355.    that exchanged the contents of a register and a memory location.
  7356.    Many newer hackers are probably thinking instead of the
  7357.    {{PostScript}} exchange operator (which is usually written in
  7358.    lowercase).
  7359.  
  7360. :excl: /eks'kl/ n. Abbreviation for `exclamation point'.  See
  7361.    {bang}, {shriek}, {{ASCII}}.
  7362.  
  7363. :EXE: /eks'ee/ or /eek'see/ or /E-X-E/ n. An executable
  7364.    binary file.  Some operating systems (notably MS-DOS, VMS, and
  7365.    TWENEX) use the extension .EXE to mark such files.  This usage is
  7366.    also occasionally found among UNIX programmers even though UNIX
  7367.    executables don't have any required suffix.
  7368.  
  7369. :exec: /eg-zek'/ vt., n.  1. [UNIX: from `execute'] Synonym for
  7370.    {chain}, derives from the `exec(2)' call.  2. [from
  7371.    `executive'] obs. The command interpreter for an {OS} (see
  7372.    {shell}); term esp. used around mainframes, and prob.
  7373.    derived from UNIVAC's archaic EXEC 2 and EXEC 8 operating systems.
  7374.    3. At IBM and VM/CMS shops, the equivalent of a shell command file
  7375.    (among VM/CMS users).
  7376.  
  7377.    The mainstream `exec' as an abbreviation for (human) executive is
  7378.    *not* used.  To a hacker, an `exec' is a always a program,
  7379.    never a person.
  7380.  
  7381. :exercise, left as an: [from technical books] Used to complete a
  7382.    proof when one doesn't mind a {handwave}, or to avoid one
  7383.    entirely.  The complete phrase is: "The proof [or `the rest'] is
  7384.    left as an exercise for the reader."  This comment *has*
  7385.    occasionally been attached to unsolved research problems by authors
  7386.    possessed of either an evil sense of humor or a vast faith in the
  7387.    capabilities of their audiences.
  7388.  
  7389. :external memory: n. A memo pad or written notes.  "Hold on while
  7390.    I write that to external memory".  The analogy is with store or
  7391.    DRAM versus nonvolatile disk storage on computers.
  7392.  
  7393. :eyeball search: n.,v. To look for something in a mass of code or data
  7394.    with one's own native optical sensors, as opposed to using some
  7395.    sort of pattern matching software like {grep} or any other
  7396.    automated search tool.  Also called a {vgrep}; compare
  7397.    {vdiff}, {desk check}.
  7398.  
  7399. = F =
  7400. =====
  7401.  
  7402. :face time: n. Time spent interacting with somebody face-to-face (as
  7403.    opposed to via electronic links).  "Oh, yeah, I spent some face
  7404.    time with him at the last Usenix."
  7405.  
  7406. :factor: n. See {coefficient of X}.
  7407.  
  7408. :fall over: [IBM] vi. Yet another synonym for {crash} or {lose}.
  7409.    `Fall over hard' equates to {crash and burn}.
  7410.  
  7411.